[Home] [Help]
PACKAGE BODY: APPS.XLA_00201_AAD_S_000004_BC_PKG
Source
1 PACKAGE BODY XLA_00201_AAD_S_000004_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_000004_BC_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : Federal Purchasing Application Accounting Definition |
14 | Code : FV_PURCHASING_AAD |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 06-11-2008 at 02:11:07 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_000004_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_000004_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||
155 ' - p_meaning = '|| p_meaning
152 ' - p_source_application_id = '|| p_source_application_id||
153 ' - p_lookup_code = '|| p_lookup_code||
154 ' - p_lookup_type = '|| p_lookup_type||
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_000004_BC_PKG.ValidateLookupMeaning');
204 --
205 END ValidateLookupMeaning;
206 --
207 --
208
209 FUNCTION GetMeaning (
210 p_flex_value_set_id IN INTEGER
211 , p_flex_value IN VARCHAR2
212 , p_source_code IN VARCHAR2
213 , p_source_type_code IN VARCHAR2
214 , p_source_application_id IN INTEGER
215 )
216 RETURN VARCHAR2
217 IS
218 BEGIN
219 --
220 RETURN NULL ;
221 --
222 EXCEPTION
223 WHEN xla_exceptions_pkg.application_exception THEN
224 RAISE;
225 WHEN OTHERS THEN
226 xla_exceptions_pkg.raise_message
227 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.GetMeaning');
228 END GetMeaning;
229 --
230
231 ---------------------------------------
232 --
233 -- PRIVATE FUNCTION
234 -- Description_1
235 --
236 ---------------------------------------
237 FUNCTION Description_1 (
238 p_application_id IN NUMBER
239 , p_ae_header_id IN NUMBER DEFAULT NULL
240 --PO Type
241 , p_source_1 IN VARCHAR2
242 --PO Number
243 , p_source_2 IN VARCHAR2
244 )
245 RETURN VARCHAR2
246 IS
247 l_component_type VARCHAR2(80) ;
248 l_component_code VARCHAR2(30) ;
249 l_component_type_code VARCHAR2(1) ;
250 l_component_appl_id INTEGER ;
251 l_amb_context_code VARCHAR2(30) ;
252 l_ledger_language VARCHAR2(30) ;
253 l_source VARCHAR2(1996) ;
254 l_description VARCHAR2(2000) ;
255 l_log_module VARCHAR2(240) ;
256 BEGIN
257 IF g_log_enabled THEN
258 l_log_module := C_DEFAULT_MODULE||'.Description_1';
259 END IF;
260 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
261 trace
262 (p_msg => 'BEGIN of Description_1'
263 ,p_level => C_LEVEL_PROCEDURE
264 ,p_module => l_log_module);
265 END IF;
266
267 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
268 l_component_type := 'AMB_DESCRIPTION';
269 l_component_code := 'PO_PA_JE_HDR_DESC';
270 l_component_type_code := 'S';
271 l_component_appl_id := 201;
272 l_amb_context_code := 'DEFAULT';
273 l_source := NULL;
274 l_description := NULL;
275
276
277 IF NVL(p_source_1,'
278 ') = 'PO' OR
279 NVL(p_source_1,'
280 ') = 'PA'
281 THEN
282
283 l_source := SUBSTR(p_source_1,1,1996);
284 IF l_source IS NOT NULL THEN
285 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
286 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
287 END IF;
288 l_source := SUBSTR(p_source_2,1,1996);
289 IF l_source IS NOT NULL THEN
290 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
291 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
292 END IF;
293 l_description := SUBSTR(l_description,1,1996);
294 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
295 trace
296 (p_msg => 'END of Description_1'
297 ,p_level => C_LEVEL_PROCEDURE
298 ,p_module => l_log_module);
299
300 END IF;
301 RETURN l_description;
302
303 END IF;
304 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
305 trace
306 (p_msg => 'END of Description_1'
307 ,p_level => C_LEVEL_PROCEDURE
308 ,p_module => l_log_module);
309 END IF;
310 RETURN NULL;
311 EXCEPTION
312 WHEN VALUE_ERROR THEN
313 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
314 trace
315 (p_msg => 'ERROR: '||sqlerrm
316 ,p_level => C_LEVEL_EXCEPTION
317 ,p_module => l_log_module);
318 END IF;
319 RAISE;
320 WHEN xla_exceptions_pkg.application_exception THEN
321 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
322 trace
323 (p_msg => 'ERROR: '||sqlerrm
324 ,p_level => C_LEVEL_EXCEPTION
325 ,p_module => l_log_module);
326 END IF;
327 RAISE;
328 WHEN OTHERS THEN
329 xla_exceptions_pkg.raise_message
330 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.Description_1');
331 END Description_1;
332
333 ---------------------------------------
334 --
335 -- PRIVATE FUNCTION
336 -- Description_2
337 --
338 ---------------------------------------
339 FUNCTION Description_2 (
340 p_application_id IN NUMBER
341 , p_ae_header_id IN NUMBER DEFAULT NULL
342 --Journal entry Line Description
343 , p_source_3 IN VARCHAR2
344 )
345 RETURN VARCHAR2
346 IS
347 l_component_type VARCHAR2(80) ;
348 l_component_code VARCHAR2(30) ;
349 l_component_type_code VARCHAR2(1) ;
350 l_component_appl_id INTEGER ;
351 l_amb_context_code VARCHAR2(30) ;
352 l_ledger_language VARCHAR2(30) ;
353 l_source VARCHAR2(1996) ;
354 l_description VARCHAR2(2000) ;
355 l_log_module VARCHAR2(240) ;
356 BEGIN
357 IF g_log_enabled THEN
358 l_log_module := C_DEFAULT_MODULE||'.Description_2';
359 END IF;
360 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
361 trace
362 (p_msg => 'BEGIN of Description_2'
363 ,p_level => C_LEVEL_PROCEDURE
364 ,p_module => l_log_module);
365 END IF;
366
367 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
368 l_component_type := 'AMB_DESCRIPTION';
369 l_component_code := 'PURCHASING_LINE_DESC';
370 l_component_type_code := 'S';
371 l_component_appl_id := 201;
372 l_amb_context_code := 'DEFAULT';
373 l_source := NULL;
374 l_description := NULL;
375
376
377
378 l_source := SUBSTR(p_source_3,1,1996);
379 IF l_source IS NOT NULL THEN
380 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
381 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
382 END IF;
383 l_description := SUBSTR(l_description,1,1996);
384 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
385 trace
386 (p_msg => 'END of Description_2'
387 ,p_level => C_LEVEL_PROCEDURE
388 ,p_module => l_log_module);
389
390 END IF;
391 RETURN l_description;
392
393 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
394 trace
395 (p_msg => 'END of Description_2'
396 ,p_level => C_LEVEL_PROCEDURE
397 ,p_module => l_log_module);
398 END IF;
399 RETURN NULL;
400 EXCEPTION
401 WHEN VALUE_ERROR THEN
402 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
403 trace
404 (p_msg => 'ERROR: '||sqlerrm
405 ,p_level => C_LEVEL_EXCEPTION
406 ,p_module => l_log_module);
407 END IF;
408 RAISE;
409 WHEN xla_exceptions_pkg.application_exception THEN
410 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
411 trace
412 (p_msg => 'ERROR: '||sqlerrm
413 ,p_level => C_LEVEL_EXCEPTION
414 ,p_module => l_log_module);
415 END IF;
416 RAISE;
417 WHEN OTHERS THEN
418 xla_exceptions_pkg.raise_message
419 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.Description_2');
420 END Description_2;
421
422 ---------------------------------------
423 --
424 -- PRIVATE FUNCTION
425 -- Description_3
426 --
427 ---------------------------------------
428 FUNCTION Description_3 (
429 p_application_id IN NUMBER
430 , p_ae_header_id IN NUMBER DEFAULT NULL
431 --PO Type
432 , p_source_1 IN VARCHAR2
433 --PO Number
434 , p_source_2 IN VARCHAR2
435 --PO Release Number
436 , p_source_4 IN NUMBER
437 )
438 RETURN VARCHAR2
439 IS
440 l_component_type VARCHAR2(80) ;
441 l_component_code VARCHAR2(30) ;
442 l_component_type_code VARCHAR2(1) ;
443 l_component_appl_id INTEGER ;
444 l_amb_context_code VARCHAR2(30) ;
445 l_ledger_language VARCHAR2(30) ;
446 l_source VARCHAR2(1996) ;
447 l_description VARCHAR2(2000) ;
448 l_log_module VARCHAR2(240) ;
449 BEGIN
450 IF g_log_enabled THEN
451 l_log_module := C_DEFAULT_MODULE||'.Description_3';
452 END IF;
453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
454 trace
455 (p_msg => 'BEGIN of Description_3'
456 ,p_level => C_LEVEL_PROCEDURE
457 ,p_module => l_log_module);
458 END IF;
459
460 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
461 l_component_type := 'AMB_DESCRIPTION';
462 l_component_code := 'RELEASE_JE_HDR_DESC';
463 l_component_type_code := 'S';
464 l_component_appl_id := 201;
465 l_amb_context_code := 'DEFAULT';
466 l_source := NULL;
467 l_description := NULL;
468
469
470 IF NVL(p_source_1,'
471 ') = 'REL'
472 THEN
473
474 l_source := SUBSTR(p_source_1,1,1996);
475 IF l_source IS NOT NULL THEN
476 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
477 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
478 END IF;
479 l_source := SUBSTR(p_source_2,1,1996);
480 IF l_source IS NOT NULL THEN
481 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
482 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
483 END IF;
484 IF
485 l_ledger_language = 'US' THEN
486 l_description := SUBSTR(CONCAT(l_description,'-'),1,2000);
487 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
488 END IF;
489 l_source := SUBSTR(TO_CHAR(p_source_4),1,1996);
490 IF l_source IS NOT NULL THEN
491 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
492 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
493 END IF;
494 l_description := SUBSTR(l_description,1,1996);
495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
496 trace
497 (p_msg => 'END of Description_3'
498 ,p_level => C_LEVEL_PROCEDURE
499 ,p_module => l_log_module);
500
501 END IF;
502 RETURN l_description;
503
504 END IF;
505 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
506 trace
507 (p_msg => 'END of Description_3'
508 ,p_level => C_LEVEL_PROCEDURE
509 ,p_module => l_log_module);
510 END IF;
511 RETURN NULL;
512 EXCEPTION
513 WHEN VALUE_ERROR THEN
514 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
515 trace
516 (p_msg => 'ERROR: '||sqlerrm
517 ,p_level => C_LEVEL_EXCEPTION
518 ,p_module => l_log_module);
519 END IF;
520 RAISE;
521 WHEN xla_exceptions_pkg.application_exception THEN
522 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
523 trace
524 (p_msg => 'ERROR: '||sqlerrm
525 ,p_level => C_LEVEL_EXCEPTION
526 ,p_module => l_log_module);
527 END IF;
528 RAISE;
529 WHEN OTHERS THEN
530 xla_exceptions_pkg.raise_message
531 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.Description_3');
532 END Description_3;
533
534 ---------------------------------------
535 --
536 -- PRIVATE FUNCTION
537 -- Description_4
538 --
539 ---------------------------------------
540 FUNCTION Description_4 (
541 p_application_id IN NUMBER
542 , p_ae_header_id IN NUMBER DEFAULT NULL
543 --Document Type
544 , p_source_5 IN VARCHAR2
545 --Requisition Number
546 , p_source_6 IN VARCHAR2
547 )
548 RETURN VARCHAR2
549 IS
550 l_component_type VARCHAR2(80) ;
551 l_component_code VARCHAR2(30) ;
552 l_component_type_code VARCHAR2(1) ;
553 l_component_appl_id INTEGER ;
554 l_amb_context_code VARCHAR2(30) ;
555 l_ledger_language VARCHAR2(30) ;
556 l_source VARCHAR2(1996) ;
557 l_description VARCHAR2(2000) ;
558 l_log_module VARCHAR2(240) ;
559 BEGIN
560 IF g_log_enabled THEN
561 l_log_module := C_DEFAULT_MODULE||'.Description_4';
562 END IF;
563 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
564 trace
565 (p_msg => 'BEGIN of Description_4'
566 ,p_level => C_LEVEL_PROCEDURE
567 ,p_module => l_log_module);
568 END IF;
569
570 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
571 l_component_type := 'AMB_DESCRIPTION';
572 l_component_code := 'REQ_JE_HDR_DESC';
573 l_component_type_code := 'S';
574 l_component_appl_id := 201;
575 l_amb_context_code := 'DEFAULT';
576 l_source := NULL;
577 l_description := NULL;
578
579
580 IF p_source_5 IS NOT NULL
581 THEN
582
583 l_source := SUBSTR(p_source_5,1,1996);
584 IF l_source IS NOT NULL THEN
585 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
586 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
587 END IF;
588 l_source := SUBSTR(p_source_6,1,1996);
589 IF l_source IS NOT NULL THEN
590 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
591 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
592 END IF;
593 l_description := SUBSTR(l_description,1,1996);
594 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
595 trace
596 (p_msg => 'END of Description_4'
597 ,p_level => C_LEVEL_PROCEDURE
598 ,p_module => l_log_module);
599
600 END IF;
601 RETURN l_description;
602
603 END IF;
604 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
605 trace
606 (p_msg => 'END of Description_4'
607 ,p_level => C_LEVEL_PROCEDURE
608 ,p_module => l_log_module);
609 END IF;
610 RETURN NULL;
611 EXCEPTION
612 WHEN VALUE_ERROR THEN
613 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
614 trace
615 (p_msg => 'ERROR: '||sqlerrm
616 ,p_level => C_LEVEL_EXCEPTION
617 ,p_module => l_log_module);
618 END IF;
619 RAISE;
620 WHEN xla_exceptions_pkg.application_exception THEN
621 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
622 trace
623 (p_msg => 'ERROR: '||sqlerrm
624 ,p_level => C_LEVEL_EXCEPTION
625 ,p_module => l_log_module);
626 END IF;
627 RAISE;
628 WHEN OTHERS THEN
629 xla_exceptions_pkg.raise_message
630 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.Description_4');
631 END Description_4;
632
633 ---------------------------------------
634 --
635 -- PRIVATE FUNCTION
636 -- AcctDerRule_5
637 --
638 ---------------------------------------
639 FUNCTION AcctDerRule_5 (
640 p_application_id IN NUMBER
641 , p_ae_header_id IN NUMBER
642 , p_side IN VARCHAR2
643 , p_override_seg_flag IN VARCHAR2
644 --Federal Fund Category
645 , p_source_7 IN VARCHAR2
646 --Federal Fund Expired Status
647 , p_source_8 IN VARCHAR2
648 , x_transaction_coa_id OUT NOCOPY NUMBER
649 , x_accounting_coa_id OUT NOCOPY NUMBER
650 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
651 , x_flex_value_set_id OUT NOCOPY NUMBER
652 , x_value_type_code OUT NOCOPY VARCHAR2
653 , x_value_combination_id OUT NOCOPY NUMBER
654 , x_value_segment_code OUT NOCOPY VARCHAR2
655 )
656 RETURN VARCHAR2
657 IS
658 l_component_type VARCHAR2(80) ;
659 l_component_code VARCHAR2(30) ;
660 l_component_type_code VARCHAR2(1) ;
661 l_component_appl_id INTEGER ;
662 l_amb_context_code VARCHAR2(30) ;
663 l_log_module VARCHAR2(240) ;
664 l_output_value VARCHAR2(30) ;
665 BEGIN
666 IF g_log_enabled THEN
667 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
668 END IF;
669 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
670
671 trace
672 (p_msg => 'BEGIN of AcctDerRule_5'
673 ,p_level => C_LEVEL_PROCEDURE
674 ,p_module => l_log_module);
675
676 END IF;
677
678 l_component_type := 'AMB_ADR';
679 l_component_code := 'FV_46X002';
680 l_component_type_code := 'S';
681 l_component_appl_id := 201;
682 l_amb_context_code := 'DEFAULT';
683 x_transaction_coa_id := null;
684 x_accounting_coa_id := null;
685 x_flexfield_segment_code := null;
686 x_flex_value_set_id := 1009988 ;
687
688
689 IF (NVL(p_source_7,'
690 ') = 'A' OR
691 NVL(p_source_7,'
692 ') = 'B') AND
693 (NVL(p_source_8,'
694 ') = 'Unexpired' OR
695 p_source_8 IS NULL )
696 THEN
697 --
698 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
702 ,p_level => C_LEVEL_PROCEDURE
699
700 trace
701 (p_msg => 'END of AcctDerRule_5'
703 ,p_module => l_log_module);
704
705 END IF;
706 x_value_combination_id := null ;
707 x_value_segment_code := null ;
708 x_value_type_code := 'C';
709 l_output_value := '461002';
710 RETURN l_output_value;
711
712 ELSIF NVL(p_source_7,'
713 ') = 'C' AND
714 (NVL(p_source_8,'
715 ') = 'Unexpired' OR
716 p_source_8 IS NULL )
717 THEN
718 --
719 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
720
721 trace
722 (p_msg => 'END of AcctDerRule_5'
723 ,p_level => C_LEVEL_PROCEDURE
724 ,p_module => l_log_module);
725
726 END IF;
727 x_value_combination_id := null ;
728 x_value_segment_code := null ;
729 x_value_type_code := 'C';
730 l_output_value := '462002';
731 RETURN l_output_value;
732
733 ELSIF NVL(p_source_8,'
734 ') = 'Expired'
735 THEN
736 --
737 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
738
739 trace
740 (p_msg => 'END of AcctDerRule_5'
741 ,p_level => C_LEVEL_PROCEDURE
742 ,p_module => l_log_module);
743
744 END IF;
745 x_value_combination_id := null ;
746 x_value_segment_code := null ;
747 x_value_type_code := 'C';
748 l_output_value := '465002';
749 RETURN l_output_value;
750
751 ELSE
752 IF p_override_seg_flag = 'Y' THEN
753 RETURN '#$NO_OVERRIDE#$';
754 END IF;
755 END IF;
756
757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
758
759 trace
760 (p_msg => 'END of AcctDerRule_5(invalid)'
761 ,p_level => C_LEVEL_PROCEDURE
762 ,p_module => l_log_module);
763
764 END IF;
765
766 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
767 x_value_combination_id := null;
768 x_value_segment_code := null;
769 x_value_type_code := null;
770 l_output_value := null;
771 xla_accounting_err_pkg.build_message
772 (p_appli_s_name => 'XLA'
773 ,p_msg_name => 'XLA_AP_INVALID_ADR'
774 ,p_token_1 => 'COMPONENT_NAME'
775 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
776 l_component_type
777 , l_component_code
778 , l_component_type_code
779 , l_component_appl_id
780 , l_amb_context_code
781 )
782 ,p_token_2 => 'OWNER'
783 ,p_value_2 => xla_lookups_pkg.get_meaning(
784 'XLA_OWNER_TYPE'
785 ,l_component_type_code
786 )
787 ,p_token_3 => 'PAD_NAME'
788 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
789 ,p_token_4 => 'PAD_OWNER'
790 ,p_value_4 => xla_lookups_pkg.get_meaning(
791 'XLA_OWNER_TYPE'
792 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
793 )
794 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
795 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
796 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
797 ,p_ae_header_id => NULL
798 );
799 RETURN l_output_value;
800 EXCEPTION
801 WHEN xla_exceptions_pkg.application_exception THEN
802 RAISE;
803 WHEN OTHERS THEN
804 xla_exceptions_pkg.raise_message
805 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctDerRule_5');
806 END AcctDerRule_5;
807 --
808
809 ---------------------------------------
810 --
811 -- PRIVATE FUNCTION
812 -- AcctDerRule_6
813 --
814 ---------------------------------------
815 FUNCTION AcctDerRule_6 (
816 p_application_id IN NUMBER
817 , p_ae_header_id IN NUMBER
818 , p_side IN VARCHAR2
819 , p_override_seg_flag IN VARCHAR2
820 --Federal Fund Category
821 , p_source_7 IN VARCHAR2
822 , x_transaction_coa_id OUT NOCOPY NUMBER
823 , x_accounting_coa_id OUT NOCOPY NUMBER
824 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
825 , x_flex_value_set_id OUT NOCOPY NUMBER
826 , x_value_type_code OUT NOCOPY VARCHAR2
827 , x_value_combination_id OUT NOCOPY NUMBER
828 , x_value_segment_code OUT NOCOPY VARCHAR2
829 )
830 RETURN VARCHAR2
831 IS
832 l_component_type VARCHAR2(80) ;
833 l_component_code VARCHAR2(30) ;
834 l_component_type_code VARCHAR2(1) ;
835 l_component_appl_id INTEGER ;
839 BEGIN
836 l_amb_context_code VARCHAR2(30) ;
837 l_log_module VARCHAR2(240) ;
838 l_output_value VARCHAR2(30) ;
840 IF g_log_enabled THEN
841 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
842 END IF;
843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
844
845 trace
846 (p_msg => 'BEGIN of AcctDerRule_6'
847 ,p_level => C_LEVEL_PROCEDURE
848 ,p_module => l_log_module);
849
850 END IF;
851
852 l_component_type := 'AMB_ADR';
853 l_component_code := 'FV_47X002_REQUISITION';
854 l_component_type_code := 'S';
855 l_component_appl_id := 201;
856 l_amb_context_code := 'DEFAULT';
857 x_transaction_coa_id := null;
858 x_accounting_coa_id := null;
859 x_flexfield_segment_code := null;
860 x_flex_value_set_id := 1009988 ;
861
862
863 IF (NVL(p_source_7,'
864 ') = 'A' OR
865 NVL(p_source_7,'
866 ') = 'B')
867 THEN
868 --
869 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
870
871 trace
872 (p_msg => 'END of AcctDerRule_6'
873 ,p_level => C_LEVEL_PROCEDURE
874 ,p_module => l_log_module);
875
876 END IF;
877 x_value_combination_id := null ;
878 x_value_segment_code := null ;
879 x_value_type_code := 'C';
880 l_output_value := '470001';
881 RETURN l_output_value;
882
883 ELSIF NVL(p_source_7,'
884 ') = 'C'
885 THEN
886 --
887 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
888
889 trace
890 (p_msg => 'END of AcctDerRule_6'
891 ,p_level => C_LEVEL_PROCEDURE
892 ,p_module => l_log_module);
893
894 END IF;
895 x_value_combination_id := null ;
896 x_value_segment_code := null ;
897 x_value_type_code := 'C';
898 l_output_value := '472001';
899 RETURN l_output_value;
900
901 ELSE
902 IF p_override_seg_flag = 'Y' THEN
903 RETURN '#$NO_OVERRIDE#$';
904 END IF;
905 END IF;
906
907 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
908
909 trace
910 (p_msg => 'END of AcctDerRule_6(invalid)'
911 ,p_level => C_LEVEL_PROCEDURE
912 ,p_module => l_log_module);
913
914 END IF;
915
916 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
917 x_value_combination_id := null;
918 x_value_segment_code := null;
919 x_value_type_code := null;
920 l_output_value := null;
921 xla_accounting_err_pkg.build_message
922 (p_appli_s_name => 'XLA'
923 ,p_msg_name => 'XLA_AP_INVALID_ADR'
924 ,p_token_1 => 'COMPONENT_NAME'
925 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
926 l_component_type
927 , l_component_code
928 , l_component_type_code
929 , l_component_appl_id
930 , l_amb_context_code
931 )
932 ,p_token_2 => 'OWNER'
933 ,p_value_2 => xla_lookups_pkg.get_meaning(
934 'XLA_OWNER_TYPE'
935 ,l_component_type_code
936 )
937 ,p_token_3 => 'PAD_NAME'
938 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
939 ,p_token_4 => 'PAD_OWNER'
940 ,p_value_4 => xla_lookups_pkg.get_meaning(
941 'XLA_OWNER_TYPE'
942 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
943 )
944 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
945 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
946 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
947 ,p_ae_header_id => NULL
948 );
949 RETURN l_output_value;
950 EXCEPTION
951 WHEN xla_exceptions_pkg.application_exception THEN
952 RAISE;
953 WHEN OTHERS THEN
954 xla_exceptions_pkg.raise_message
955 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctDerRule_6');
956 END AcctDerRule_6;
957 --
958
959 ---------------------------------------
960 --
961 -- PRIVATE FUNCTION
962 -- AcctDerRule_7
963 --
964 ---------------------------------------
965 FUNCTION AcctDerRule_7 (
966 p_application_id IN NUMBER
967 , p_ae_header_id IN NUMBER
968 , p_side IN VARCHAR2
969 , p_override_seg_flag IN VARCHAR2
970 , x_transaction_coa_id OUT NOCOPY NUMBER
971 , x_accounting_coa_id OUT NOCOPY NUMBER
972 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
973 , x_flex_value_set_id OUT NOCOPY NUMBER
977 )
974 , x_value_type_code OUT NOCOPY VARCHAR2
975 , x_value_combination_id OUT NOCOPY NUMBER
976 , x_value_segment_code OUT NOCOPY VARCHAR2
978 RETURN VARCHAR2
979 IS
980 l_component_type VARCHAR2(80) ;
981 l_component_code VARCHAR2(30) ;
982 l_component_type_code VARCHAR2(1) ;
983 l_component_appl_id INTEGER ;
984 l_amb_context_code VARCHAR2(30) ;
985 l_log_module VARCHAR2(240) ;
986 l_output_value VARCHAR2(30) ;
987 BEGIN
988 IF g_log_enabled THEN
989 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
990 END IF;
991 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
992
993 trace
994 (p_msg => 'BEGIN of AcctDerRule_7'
995 ,p_level => C_LEVEL_PROCEDURE
996 ,p_module => l_log_module);
997
998 END IF;
999
1000 l_component_type := 'AMB_ADR';
1001 l_component_code := 'FV_488101_PURCHASING';
1002 l_component_type_code := 'S';
1003 l_component_appl_id := 201;
1004 l_amb_context_code := 'DEFAULT';
1005 x_transaction_coa_id := null;
1006 x_accounting_coa_id := null;
1007 x_flexfield_segment_code := null;
1008 x_flex_value_set_id := 1009988 ;
1009
1010
1011 --
1012 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1013
1014 trace
1015 (p_msg => 'END of AcctDerRule_7'
1016 ,p_level => C_LEVEL_PROCEDURE
1017 ,p_module => l_log_module);
1018
1019 END IF;
1020 x_value_combination_id := null ;
1021 x_value_segment_code := null ;
1022 x_value_type_code := 'C';
1023 l_output_value := '488101';
1024 RETURN l_output_value;
1025
1026
1027 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1028
1029 trace
1030 (p_msg => 'END of AcctDerRule_7(invalid)'
1031 ,p_level => C_LEVEL_PROCEDURE
1032 ,p_module => l_log_module);
1033
1034 END IF;
1035
1036 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1037 x_value_combination_id := null;
1038 x_value_segment_code := null;
1039 x_value_type_code := null;
1040 l_output_value := null;
1041 xla_accounting_err_pkg.build_message
1042 (p_appli_s_name => 'XLA'
1043 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1044 ,p_token_1 => 'COMPONENT_NAME'
1045 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1046 l_component_type
1047 , l_component_code
1048 , l_component_type_code
1049 , l_component_appl_id
1050 , l_amb_context_code
1051 )
1052 ,p_token_2 => 'OWNER'
1053 ,p_value_2 => xla_lookups_pkg.get_meaning(
1054 'XLA_OWNER_TYPE'
1055 ,l_component_type_code
1056 )
1057 ,p_token_3 => 'PAD_NAME'
1058 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1059 ,p_token_4 => 'PAD_OWNER'
1060 ,p_value_4 => xla_lookups_pkg.get_meaning(
1061 'XLA_OWNER_TYPE'
1062 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1063 )
1064 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1065 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1066 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1067 ,p_ae_header_id => NULL
1068 );
1069 RETURN l_output_value;
1070 EXCEPTION
1071 WHEN xla_exceptions_pkg.application_exception THEN
1072 RAISE;
1073 WHEN OTHERS THEN
1074 xla_exceptions_pkg.raise_message
1075 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctDerRule_7');
1076 END AcctDerRule_7;
1077 --
1078
1079 ---------------------------------------
1080 --
1081 -- PRIVATE FUNCTION
1082 -- AcctDerRule_8
1083 --
1084 ---------------------------------------
1085 FUNCTION AcctDerRule_8 (
1086 p_application_id IN NUMBER
1087 , p_ae_header_id IN NUMBER
1088 , p_side IN VARCHAR2
1089 , p_override_seg_flag IN VARCHAR2
1090 , x_transaction_coa_id OUT NOCOPY NUMBER
1091 , x_accounting_coa_id OUT NOCOPY NUMBER
1092 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1093 , x_flex_value_set_id OUT NOCOPY NUMBER
1094 , x_value_type_code OUT NOCOPY VARCHAR2
1095 , x_value_combination_id OUT NOCOPY NUMBER
1096 , x_value_segment_code OUT NOCOPY VARCHAR2
1097 )
1098 RETURN VARCHAR2
1099 IS
1100 l_component_type VARCHAR2(80) ;
1101 l_component_code VARCHAR2(30) ;
1102 l_component_type_code VARCHAR2(1) ;
1103 l_component_appl_id INTEGER ;
1104 l_amb_context_code VARCHAR2(30) ;
1105 l_log_module VARCHAR2(240) ;
1106 l_output_value VARCHAR2(30) ;
1107 BEGIN
1108 IF g_log_enabled THEN
1109 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1110 END IF;
1111 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1112
1113 trace
1114 (p_msg => 'BEGIN of AcctDerRule_8'
1115 ,p_level => C_LEVEL_PROCEDURE
1116 ,p_module => l_log_module);
1117
1118 END IF;
1119
1120 l_component_type := 'AMB_ADR';
1121 l_component_code := 'FV_48X101_PURCHASING';
1122 l_component_type_code := 'S';
1123 l_component_appl_id := 201;
1124 l_amb_context_code := 'DEFAULT';
1125 x_transaction_coa_id := null;
1126 x_accounting_coa_id := null;
1127 x_flexfield_segment_code := null;
1128 x_flex_value_set_id := 1009988 ;
1129
1130
1131 --
1132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1133
1134 trace
1135 (p_msg => 'END of AcctDerRule_8'
1136 ,p_level => C_LEVEL_PROCEDURE
1137 ,p_module => l_log_module);
1138
1139 END IF;
1140 x_value_combination_id := null ;
1141 x_value_segment_code := null ;
1142 x_value_type_code := 'C';
1143 l_output_value := '480101';
1144 RETURN l_output_value;
1145
1146
1147 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1148
1149 trace
1150 (p_msg => 'END of AcctDerRule_8(invalid)'
1151 ,p_level => C_LEVEL_PROCEDURE
1152 ,p_module => l_log_module);
1153
1154 END IF;
1155
1156 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1157 x_value_combination_id := null;
1158 x_value_segment_code := null;
1159 x_value_type_code := null;
1160 l_output_value := null;
1161 xla_accounting_err_pkg.build_message
1162 (p_appli_s_name => 'XLA'
1163 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1164 ,p_token_1 => 'COMPONENT_NAME'
1165 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1166 l_component_type
1167 , l_component_code
1168 , l_component_type_code
1169 , l_component_appl_id
1170 , l_amb_context_code
1171 )
1172 ,p_token_2 => 'OWNER'
1173 ,p_value_2 => xla_lookups_pkg.get_meaning(
1174 'XLA_OWNER_TYPE'
1175 ,l_component_type_code
1176 )
1177 ,p_token_3 => 'PAD_NAME'
1178 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1179 ,p_token_4 => 'PAD_OWNER'
1180 ,p_value_4 => xla_lookups_pkg.get_meaning(
1181 'XLA_OWNER_TYPE'
1182 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1183 )
1184 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1185 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1186 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1187 ,p_ae_header_id => NULL
1188 );
1189 RETURN l_output_value;
1190 EXCEPTION
1191 WHEN xla_exceptions_pkg.application_exception THEN
1192 RAISE;
1193 WHEN OTHERS THEN
1194 xla_exceptions_pkg.raise_message
1195 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctDerRule_8');
1196 END AcctDerRule_8;
1197 --
1198
1199 ---------------------------------------
1200 --
1201 -- PRIVATE FUNCTION
1202 -- AcctDerRule_9
1203 --
1204 ---------------------------------------
1205 FUNCTION AcctDerRule_9 (
1206 p_application_id IN NUMBER
1207 , p_ae_header_id IN NUMBER
1208 , p_side IN VARCHAR2
1209 --Budget Account
1210 , p_source_9 IN NUMBER
1211 , x_transaction_coa_id OUT NOCOPY NUMBER
1212 , x_accounting_coa_id OUT NOCOPY NUMBER
1213 , x_value_type_code OUT NOCOPY VARCHAR2
1214 )
1215 RETURN NUMBER
1216 IS
1217 l_component_type VARCHAR2(80) ;
1218 l_component_code VARCHAR2(30) ;
1219 l_component_type_code VARCHAR2(1) ;
1220 l_component_appl_id INTEGER ;
1221 l_amb_context_code VARCHAR2(30) ;
1222 l_log_module VARCHAR2(240) ;
1223 l_output_value NUMBER ;
1224 BEGIN
1225 IF g_log_enabled THEN
1226 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1227 END IF;
1228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1229 trace
1230 (p_msg => 'BEGIN of AcctDerRule_9'
1231 ,p_level => C_LEVEL_PROCEDURE
1232 ,p_module => l_log_module);
1233 END IF;
1234 --
1235 l_component_type := 'AMB_ADR';
1236 l_component_code := 'FV_ACCOUNT_RULE';
1237 l_component_type_code := 'S';
1238 l_component_appl_id := 201;
1239 l_amb_context_code := 'DEFAULT';
1240 x_transaction_coa_id := null;
1241 x_accounting_coa_id := null;
1242 --
1243
1244 --
1245 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1246 trace
1247 (p_msg => 'END of AcctDerRule_9'
1248 ,p_level => C_LEVEL_PROCEDURE
1249 ,p_module => l_log_module);
1250 END IF;
1251 x_value_type_code := 'S';
1252 l_output_value := TO_NUMBER(TO_NUMBER(p_source_9));
1253 RETURN l_output_value;
1254
1255 --
1256 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1257 trace
1258 (p_msg => 'END of AcctDerRule_9(invalid)'
1259 ,p_level => C_LEVEL_PROCEDURE
1260 ,p_module => l_log_module);
1261 END IF;
1262 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1263 x_value_type_code := null;
1264 l_output_value := null;
1265 xla_accounting_err_pkg.build_message
1266 (p_appli_s_name => 'XLA'
1267 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1268 ,p_token_1 => 'COMPONENT_NAME'
1269 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1270 l_component_type
1271 , l_component_code
1272 , l_component_type_code
1273 , l_component_appl_id
1274 , l_amb_context_code
1275 )
1276 ,p_token_2 => 'OWNER'
1277 ,p_value_2 => xla_lookups_pkg.get_meaning(
1278 'XLA_OWNER_TYPE'
1279 ,l_component_type_code
1280 )
1281 ,p_token_3 => 'PAD_NAME'
1282 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1283 ,p_token_4 => 'PAD_OWNER'
1284 ,p_value_4 => xla_lookups_pkg.get_meaning(
1285 'XLA_OWNER_TYPE'
1286 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1287 )
1288 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1289 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1290 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1291 ,p_ae_header_id => NULL
1292 );
1293 RETURN l_output_value;
1294 EXCEPTION
1295 WHEN xla_exceptions_pkg.application_exception THEN
1296 RAISE;
1297 WHEN OTHERS THEN
1298 xla_exceptions_pkg.raise_message
1299 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctDerRule_9');
1300 END AcctDerRule_9;
1301 --
1302
1303 ---------------------------------------
1304 --
1305 -- PRIVATE FUNCTION
1306 -- AcctDerRule_10
1307 --
1308 ---------------------------------------
1309 FUNCTION AcctDerRule_10 (
1310 p_application_id IN NUMBER
1311 , p_ae_header_id IN NUMBER
1312 , p_side IN VARCHAR2
1313 , p_override_seg_flag IN VARCHAR2
1314 , x_transaction_coa_id OUT NOCOPY NUMBER
1315 , x_accounting_coa_id OUT NOCOPY NUMBER
1316 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1317 , x_flex_value_set_id OUT NOCOPY NUMBER
1318 , x_value_type_code OUT NOCOPY VARCHAR2
1319 , x_value_combination_id OUT NOCOPY NUMBER
1320 , x_value_segment_code OUT NOCOPY VARCHAR2
1321 )
1322 RETURN VARCHAR2
1323 IS
1324 l_component_type VARCHAR2(80) ;
1325 l_component_code VARCHAR2(30) ;
1326 l_component_type_code VARCHAR2(1) ;
1327 l_component_appl_id INTEGER ;
1328 l_amb_context_code VARCHAR2(30) ;
1329 l_log_module VARCHAR2(240) ;
1330 l_output_value VARCHAR2(30) ;
1331 BEGIN
1332 IF g_log_enabled THEN
1333 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1334 END IF;
1335 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1336
1337 trace
1338 (p_msg => 'BEGIN of AcctDerRule_10'
1339 ,p_level => C_LEVEL_PROCEDURE
1340 ,p_module => l_log_module);
1341
1342 END IF;
1343
1344 l_component_type := 'AMB_ADR';
1345 l_component_code := 'FV_PYA_431002_ANTCIPATED';
1346 l_component_type_code := 'S';
1347 l_component_appl_id := 201;
1348 l_amb_context_code := 'DEFAULT';
1349 x_transaction_coa_id := null;
1350 x_accounting_coa_id := null;
1351 x_flexfield_segment_code := null;
1352 x_flex_value_set_id := 1009988 ;
1353
1354
1355 --
1356 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1357
1358 trace
1359 (p_msg => 'END of AcctDerRule_10'
1360 ,p_level => C_LEVEL_PROCEDURE
1361 ,p_module => l_log_module);
1362
1363 END IF;
1364 x_value_combination_id := null ;
1365 x_value_segment_code := null ;
1366 x_value_type_code := 'C';
1367 l_output_value := '431002';
1368 RETURN l_output_value;
1369
1370
1371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1372
1373 trace
1374 (p_msg => 'END of AcctDerRule_10(invalid)'
1375 ,p_level => C_LEVEL_PROCEDURE
1376 ,p_module => l_log_module);
1377
1378 END IF;
1379
1380 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1381 x_value_combination_id := null;
1382 x_value_segment_code := null;
1383 x_value_type_code := null;
1384 l_output_value := null;
1385 xla_accounting_err_pkg.build_message
1386 (p_appli_s_name => 'XLA'
1387 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1388 ,p_token_1 => 'COMPONENT_NAME'
1389 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1390 l_component_type
1391 , l_component_code
1392 , l_component_type_code
1393 , l_component_appl_id
1394 , l_amb_context_code
1395 )
1396 ,p_token_2 => 'OWNER'
1397 ,p_value_2 => xla_lookups_pkg.get_meaning(
1398 'XLA_OWNER_TYPE'
1399 ,l_component_type_code
1400 )
1401 ,p_token_3 => 'PAD_NAME'
1402 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1403 ,p_token_4 => 'PAD_OWNER'
1404 ,p_value_4 => xla_lookups_pkg.get_meaning(
1405 'XLA_OWNER_TYPE'
1406 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1407 )
1408 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1409 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1410 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1411 ,p_ae_header_id => NULL
1412 );
1413 RETURN l_output_value;
1414 EXCEPTION
1415 WHEN xla_exceptions_pkg.application_exception THEN
1416 RAISE;
1417 WHEN OTHERS THEN
1418 xla_exceptions_pkg.raise_message
1419 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctDerRule_10');
1420 END AcctDerRule_10;
1421 --
1422
1423 ---------------------------------------
1424 --
1425 -- PRIVATE FUNCTION
1426 -- AcctDerRule_11
1427 --
1428 ---------------------------------------
1429 FUNCTION AcctDerRule_11 (
1430 p_application_id IN NUMBER
1431 , p_ae_header_id IN NUMBER
1432 , p_side IN VARCHAR2
1433 , p_override_seg_flag IN VARCHAR2
1434 --Federal Fund Expired Status
1435 , p_source_8 IN VARCHAR2
1436 , x_transaction_coa_id OUT NOCOPY NUMBER
1437 , x_accounting_coa_id OUT NOCOPY NUMBER
1438 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1439 , x_flex_value_set_id OUT NOCOPY NUMBER
1440 , x_value_type_code OUT NOCOPY VARCHAR2
1441 , x_value_combination_id OUT NOCOPY NUMBER
1442 , x_value_segment_code OUT NOCOPY VARCHAR2
1443 )
1444 RETURN VARCHAR2
1445 IS
1446 l_component_type VARCHAR2(80) ;
1447 l_component_code VARCHAR2(30) ;
1448 l_component_type_code VARCHAR2(1) ;
1449 l_component_appl_id INTEGER ;
1450 l_amb_context_code VARCHAR2(30) ;
1451 l_log_module VARCHAR2(240) ;
1452 l_output_value VARCHAR2(30) ;
1453 BEGIN
1454 IF g_log_enabled THEN
1455 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
1456 END IF;
1457 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1458
1459 trace
1460 (p_msg => 'BEGIN of AcctDerRule_11'
1461 ,p_level => C_LEVEL_PROCEDURE
1462 ,p_module => l_log_module);
1463
1464 END IF;
1465
1466 l_component_type := 'AMB_ADR';
1467 l_component_code := 'FV_PYA_445002_UNANTICIPATED';
1468 l_component_type_code := 'S';
1469 l_component_appl_id := 201;
1470 l_amb_context_code := 'DEFAULT';
1471 x_transaction_coa_id := null;
1472 x_accounting_coa_id := null;
1473 x_flexfield_segment_code := null;
1474 x_flex_value_set_id := 1009988 ;
1475
1476
1477 IF NVL(p_source_8,'
1478 ') = 'Unexpired'
1479 THEN
1480 --
1481 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1482
1483 trace
1484 (p_msg => 'END of AcctDerRule_11'
1485 ,p_level => C_LEVEL_PROCEDURE
1486 ,p_module => l_log_module);
1487
1488 END IF;
1489 x_value_combination_id := null ;
1490 x_value_segment_code := null ;
1491 x_value_type_code := 'C';
1492 l_output_value := '445002';
1493 RETURN l_output_value;
1494
1495 ELSIF NVL(p_source_8,'
1496 ') = 'Expired'
1497 THEN
1498 --
1499 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1500
1501 trace
1502 (p_msg => 'END of AcctDerRule_11'
1503 ,p_level => C_LEVEL_PROCEDURE
1504 ,p_module => l_log_module);
1505
1506 END IF;
1507 x_value_combination_id := null ;
1508 x_value_segment_code := null ;
1509 x_value_type_code := 'C';
1510 l_output_value := '465002';
1511 RETURN l_output_value;
1512
1513 ELSE
1514 IF p_override_seg_flag = 'Y' THEN
1515 RETURN '#$NO_OVERRIDE#$';
1516 END IF;
1517 END IF;
1518
1519 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1520
1521 trace
1522 (p_msg => 'END of AcctDerRule_11(invalid)'
1523 ,p_level => C_LEVEL_PROCEDURE
1524 ,p_module => l_log_module);
1525
1526 END IF;
1527
1528 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1529 x_value_combination_id := null;
1530 x_value_segment_code := null;
1531 x_value_type_code := null;
1532 l_output_value := null;
1533 xla_accounting_err_pkg.build_message
1534 (p_appli_s_name => 'XLA'
1535 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1536 ,p_token_1 => 'COMPONENT_NAME'
1537 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1538 l_component_type
1539 , l_component_code
1540 , l_component_type_code
1541 , l_component_appl_id
1542 , l_amb_context_code
1543 )
1544 ,p_token_2 => 'OWNER'
1545 ,p_value_2 => xla_lookups_pkg.get_meaning(
1546 'XLA_OWNER_TYPE'
1547 ,l_component_type_code
1548 )
1549 ,p_token_3 => 'PAD_NAME'
1550 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1551 ,p_token_4 => 'PAD_OWNER'
1552 ,p_value_4 => xla_lookups_pkg.get_meaning(
1553 'XLA_OWNER_TYPE'
1554 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1555 )
1556 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1557 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1558 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1559 ,p_ae_header_id => NULL
1560 );
1561 RETURN l_output_value;
1562 EXCEPTION
1563 WHEN xla_exceptions_pkg.application_exception THEN
1564 RAISE;
1565 WHEN OTHERS THEN
1566 xla_exceptions_pkg.raise_message
1567 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctDerRule_11');
1568 END AcctDerRule_11;
1569 --
1570
1571 ---------------------------------------
1572 --
1573 -- PRIVATE FUNCTION
1574 -- AcctDerRule_12
1575 --
1576 ---------------------------------------
1577 FUNCTION AcctDerRule_12 (
1578 p_application_id IN NUMBER
1579 , p_ae_header_id IN NUMBER
1580 , p_side IN VARCHAR2
1581 , p_override_seg_flag IN VARCHAR2
1582 --Federal Fund Category
1583 , p_source_7 IN VARCHAR2
1584 --Federal Fund Expired Status
1585 , p_source_8 IN VARCHAR2
1586 --Federal Prior Year Flag
1587 , p_source_10 IN VARCHAR2
1588 --Federal Net Pya Adj Amt
1589 , p_source_11 IN NUMBER
1590 , x_transaction_coa_id OUT NOCOPY NUMBER
1591 , x_accounting_coa_id OUT NOCOPY NUMBER
1592 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1593 , x_flex_value_set_id OUT NOCOPY NUMBER
1594 , x_value_type_code OUT NOCOPY VARCHAR2
1595 , x_value_combination_id OUT NOCOPY NUMBER
1596 , x_value_segment_code OUT NOCOPY VARCHAR2
1597 )
1598 RETURN VARCHAR2
1599 IS
1600 l_component_type VARCHAR2(80) ;
1601 l_component_code VARCHAR2(30) ;
1602 l_component_type_code VARCHAR2(1) ;
1603 l_component_appl_id INTEGER ;
1604 l_amb_context_code VARCHAR2(30) ;
1605 l_log_module VARCHAR2(240) ;
1606 l_output_value VARCHAR2(30) ;
1607 BEGIN
1608 IF g_log_enabled THEN
1609 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
1610 END IF;
1611 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1612
1613 trace
1614 (p_msg => 'BEGIN of AcctDerRule_12'
1615 ,p_level => C_LEVEL_PROCEDURE
1616 ,p_module => l_log_module);
1617
1618 END IF;
1619
1620 l_component_type := 'AMB_ADR';
1621 l_component_code := 'FV_PYA_46X002_487101';
1622 l_component_type_code := 'S';
1623 l_component_appl_id := 201;
1624 l_amb_context_code := 'DEFAULT';
1625 x_transaction_coa_id := null;
1626 x_accounting_coa_id := null;
1627 x_flexfield_segment_code := null;
1628 x_flex_value_set_id := 1009988 ;
1629
1630
1631 IF (NVL(p_source_10,'
1632 ') = 'Y' AND
1633 p_source_11 < 0 AND
1634 NVL(p_source_8,'
1635 ') = 'Unexpired') OR
1636 NVL(
1637 xla_ae_sources_pkg.GetSystemSourceChar(
1638 p_source_code => 'XLA_EVENT_TYPE_CODE'
1639 , p_source_type_code => 'Y'
1640 , p_source_application_id => 602
1641 ),'
1642 ') = 'PO_PA_CANCELLED' OR
1643 NVL(
1644 xla_ae_sources_pkg.GetSystemSourceChar(
1645 p_source_code => 'XLA_EVENT_TYPE_CODE'
1646 , p_source_type_code => 'Y'
1647 , p_source_application_id => 602
1648 ),'
1649 ') = 'RELEASE_CANCELLED' OR
1650 NVL(
1651 xla_ae_sources_pkg.GetSystemSourceChar(
1652 p_source_code => 'XLA_EVENT_TYPE_CODE'
1653 , p_source_type_code => 'Y'
1654 , p_source_application_id => 602
1655 ),'
1656 ') = 'PO_PA_FINAL_CLOSED' OR
1657 NVL(
1658 xla_ae_sources_pkg.GetSystemSourceChar(
1659 p_source_code => 'XLA_EVENT_TYPE_CODE'
1660 , p_source_type_code => 'Y'
1661 , p_source_application_id => 602
1662 ),'
1663 ') = 'RELEASE_FINAL_CLOSED'
1664 THEN
1665 --
1666 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1667
1668 trace
1669 (p_msg => 'END of AcctDerRule_12'
1670 ,p_level => C_LEVEL_PROCEDURE
1671 ,p_module => l_log_module);
1672
1673 END IF;
1674 x_value_combination_id := null ;
1675 x_value_segment_code := null ;
1676 x_value_type_code := 'C';
1677 l_output_value := '487101';
1678 RETURN l_output_value;
1679
1680 ELSIF (NVL(p_source_7,'
1681 ') = 'A' OR
1682 NVL(p_source_7,'
1683 ') = 'B') AND
1684 NVL(p_source_8,'
1685 ') = 'Unexpired' AND
1686 p_source_11 > 0 AND
1687 NVL(p_source_10,'
1688 ') = 'Y'
1689 THEN
1690 --
1691 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1692
1693 trace
1694 (p_msg => 'END of AcctDerRule_12'
1695 ,p_level => C_LEVEL_PROCEDURE
1696 ,p_module => l_log_module);
1697
1698 END IF;
1699 x_value_combination_id := null ;
1700 x_value_segment_code := null ;
1701 x_value_type_code := 'C';
1702 l_output_value := '461002';
1703 RETURN l_output_value;
1704
1705 ELSIF NVL(p_source_7,'
1706 ') = 'C' AND
1707 NVL(p_source_8,'
1708 ') = 'Unexpired' AND
1709 NVL(p_source_10,'
1710 ') = 'Y' AND
1711 p_source_11 > 0
1712 THEN
1713 --
1714 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1715
1716 trace
1717 (p_msg => 'END of AcctDerRule_12'
1718 ,p_level => C_LEVEL_PROCEDURE
1719 ,p_module => l_log_module);
1720
1721 END IF;
1722 x_value_combination_id := null ;
1723 x_value_segment_code := null ;
1724 x_value_type_code := 'C';
1725 l_output_value := '462002';
1726 RETURN l_output_value;
1727
1728 ELSIF NVL(p_source_8,'
1729 ') = 'Expired'
1730 THEN
1731 --
1732 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1733
1734 trace
1735 (p_msg => 'END of AcctDerRule_12'
1736 ,p_level => C_LEVEL_PROCEDURE
1737 ,p_module => l_log_module);
1738
1739 END IF;
1740 x_value_combination_id := null ;
1741 x_value_segment_code := null ;
1742 x_value_type_code := 'C';
1743 l_output_value := '465002';
1744 RETURN l_output_value;
1745
1746 ELSE
1747 IF p_override_seg_flag = 'Y' THEN
1748 RETURN '#$NO_OVERRIDE#$';
1749 END IF;
1750 END IF;
1751
1752 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1753
1754 trace
1755 (p_msg => 'END of AcctDerRule_12(invalid)'
1756 ,p_level => C_LEVEL_PROCEDURE
1757 ,p_module => l_log_module);
1758
1759 END IF;
1760
1761 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1762 x_value_combination_id := null;
1763 x_value_segment_code := null;
1764 x_value_type_code := null;
1765 l_output_value := null;
1766 xla_accounting_err_pkg.build_message
1767 (p_appli_s_name => 'XLA'
1768 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1769 ,p_token_1 => 'COMPONENT_NAME'
1770 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1771 l_component_type
1772 , l_component_code
1773 , l_component_type_code
1774 , l_component_appl_id
1775 , l_amb_context_code
1776 )
1777 ,p_token_2 => 'OWNER'
1778 ,p_value_2 => xla_lookups_pkg.get_meaning(
1779 'XLA_OWNER_TYPE'
1780 ,l_component_type_code
1781 )
1782 ,p_token_3 => 'PAD_NAME'
1783 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1784 ,p_token_4 => 'PAD_OWNER'
1785 ,p_value_4 => xla_lookups_pkg.get_meaning(
1786 'XLA_OWNER_TYPE'
1787 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1788 )
1789 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1790 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1791 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1792 ,p_ae_header_id => NULL
1793 );
1794 RETURN l_output_value;
1795 EXCEPTION
1796 WHEN xla_exceptions_pkg.application_exception THEN
1797 RAISE;
1798 WHEN OTHERS THEN
1799 xla_exceptions_pkg.raise_message
1800 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctDerRule_12');
1801 END AcctDerRule_12;
1802 --
1803
1804 ---------------------------------------
1805 --
1806 -- PRIVATE FUNCTION
1807 -- AcctDerRule_13
1808 --
1809 ---------------------------------------
1810 FUNCTION AcctDerRule_13 (
1811 p_application_id IN NUMBER
1812 , p_ae_header_id IN NUMBER
1813 , p_side IN VARCHAR2
1814 , p_override_seg_flag IN VARCHAR2
1815 , x_transaction_coa_id OUT NOCOPY NUMBER
1816 , x_accounting_coa_id OUT NOCOPY NUMBER
1817 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1818 , x_flex_value_set_id OUT NOCOPY NUMBER
1819 , x_value_type_code OUT NOCOPY VARCHAR2
1820 , x_value_combination_id OUT NOCOPY NUMBER
1821 , x_value_segment_code OUT NOCOPY VARCHAR2
1822 )
1823 RETURN VARCHAR2
1824 IS
1825 l_component_type VARCHAR2(80) ;
1826 l_component_code VARCHAR2(30) ;
1827 l_component_type_code VARCHAR2(1) ;
1828 l_component_appl_id INTEGER ;
1829 l_amb_context_code VARCHAR2(30) ;
1830 l_log_module VARCHAR2(240) ;
1831 l_output_value VARCHAR2(30) ;
1832 BEGIN
1833 IF g_log_enabled THEN
1834 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
1835 END IF;
1836 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1837
1838 trace
1839 (p_msg => 'BEGIN of AcctDerRule_13'
1840 ,p_level => C_LEVEL_PROCEDURE
1841 ,p_module => l_log_module);
1842
1843 END IF;
1844
1845 l_component_type := 'AMB_ADR';
1846 l_component_code := 'FV_PYA_FINAL_CLOSE_487101';
1847 l_component_type_code := 'S';
1848 l_component_appl_id := 201;
1849 l_amb_context_code := 'DEFAULT';
1850 x_transaction_coa_id := null;
1851 x_accounting_coa_id := null;
1852 x_flexfield_segment_code := null;
1853 x_flex_value_set_id := 1009988 ;
1854
1855
1856 --
1857 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1858
1859 trace
1860 (p_msg => 'END of AcctDerRule_13'
1861 ,p_level => C_LEVEL_PROCEDURE
1862 ,p_module => l_log_module);
1863
1864 END IF;
1865 x_value_combination_id := null ;
1866 x_value_segment_code := null ;
1867 x_value_type_code := 'C';
1868 l_output_value := '487101';
1869 RETURN l_output_value;
1870
1871
1872 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1873
1874 trace
1875 (p_msg => 'END of AcctDerRule_13(invalid)'
1876 ,p_level => C_LEVEL_PROCEDURE
1877 ,p_module => l_log_module);
1878
1879 END IF;
1880
1881 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1882 x_value_combination_id := null;
1883 x_value_segment_code := null;
1884 x_value_type_code := null;
1885 l_output_value := null;
1886 xla_accounting_err_pkg.build_message
1887 (p_appli_s_name => 'XLA'
1888 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1889 ,p_token_1 => 'COMPONENT_NAME'
1890 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1891 l_component_type
1892 , l_component_code
1893 , l_component_type_code
1894 , l_component_appl_id
1895 , l_amb_context_code
1896 )
1897 ,p_token_2 => 'OWNER'
1898 ,p_value_2 => xla_lookups_pkg.get_meaning(
1899 'XLA_OWNER_TYPE'
1900 ,l_component_type_code
1901 )
1902 ,p_token_3 => 'PAD_NAME'
1903 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1904 ,p_token_4 => 'PAD_OWNER'
1905 ,p_value_4 => xla_lookups_pkg.get_meaning(
1906 'XLA_OWNER_TYPE'
1907 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1908 )
1909 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1910 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1911 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1912 ,p_ae_header_id => NULL
1913 );
1914 RETURN l_output_value;
1915 EXCEPTION
1916 WHEN xla_exceptions_pkg.application_exception THEN
1917 RAISE;
1918 WHEN OTHERS THEN
1919 xla_exceptions_pkg.raise_message
1920 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctDerRule_13');
1921 END AcctDerRule_13;
1922 --
1923
1924 ---------------------------------------
1925 --
1926 -- PRIVATE FUNCTION
1927 -- AcctLineType_14
1928 --
1929 ---------------------------------------
1930 PROCEDURE AcctLineType_14 (
1931 p_application_id IN NUMBER
1932 ,p_event_id IN NUMBER
1933 ,p_calculate_acctd_flag IN VARCHAR2
1934 ,p_calculate_g_l_flag IN VARCHAR2
1935 ,p_actual_flag IN OUT VARCHAR2
1936 ,p_balance_type_code OUT VARCHAR2
1937 ,p_gain_or_loss_ref OUT VARCHAR2
1938
1939 --Budget Account
1940 , p_source_9 IN NUMBER
1941 --Federal Prior Year Flag
1942 , p_source_10 IN VARCHAR2
1943 --Main Or Backing Code
1944 , p_source_13 IN VARCHAR2
1945 --PO Distribution Type
1946 , p_source_14 IN VARCHAR2
1947 --Accounting Reversal Flag
1948 , p_source_15 IN VARCHAR2
1949 --Distribution Link Type
1950 , p_source_17 IN VARCHAR2
1951 --PO Distribution Identifier
1952 , p_source_19 IN NUMBER
1953 --PO Header Identifier
1954 , p_source_20 IN NUMBER
1955 --Applied To Application Identifier
1956 , p_source_21 IN NUMBER
1957 --Applied To Distribution Link Type
1958 , p_source_22 IN VARCHAR2
1959 --Applied To Entity Code
1960 , p_source_23 IN VARCHAR2
1961 --Applied To Distribution Identifier 1
1962 , p_source_24 IN NUMBER
1963 --Applied To Header Identifier 1
1964 , p_source_25 IN NUMBER
1965 --Entered Amount
1966 , p_source_26 IN NUMBER
1967 --Currency Code
1968 , p_source_27 IN VARCHAR2
1969 --Accounted Amount
1970 , p_source_28 IN NUMBER
1971 --PO Encumbrance Upgrade Option
1972 , p_source_29 IN VARCHAR2
1973 --Federal Unanticipated Amt
1974 , p_source_30 IN NUMBER
1975 --JFMIP Reference
1976 , p_source_31 IN VARCHAR2
1977 --PO Upgrade Encumbrance Type Identifier
1978 , p_source_32 IN NUMBER
1979 )
1980 IS
1981
1982 l_component_type VARCHAR2(80);
1983 l_component_code VARCHAR2(30);
1984 l_component_type_code VARCHAR2(1);
1985 l_component_appl_id INTEGER;
1986 l_amb_context_code VARCHAR2(30);
1987 l_entity_code VARCHAR2(30);
1988 l_event_class_code VARCHAR2(30);
1989 l_ae_header_id NUMBER;
1990 l_event_type_code VARCHAR2(30);
1991 l_line_definition_code VARCHAR2(30);
1992 l_line_definition_owner_code VARCHAR2(1);
1993 --
1994 -- adr variables
1995 l_segment VARCHAR2(30);
1996 l_ccid NUMBER;
1997 l_adr_transaction_coa_id NUMBER;
1998 l_adr_accounting_coa_id NUMBER;
1999 l_adr_flexfield_segment_code VARCHAR2(30);
2000 l_adr_flex_value_set_id NUMBER;
2001 l_adr_value_type_code VARCHAR2(30);
2002 l_adr_value_combination_id NUMBER;
2003 l_adr_value_segment_code VARCHAR2(30);
2004
2005 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
2006 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
2007 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
2008 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
2009
2010 -- 4262811 Variables ------------------------------------------------------------------------------------------
2011 l_entered_amt_idx NUMBER;
2012 l_accted_amt_idx NUMBER;
2013 l_acc_rev_flag VARCHAR2(1);
2014 l_accrual_line_num NUMBER;
2015 l_tmp_amt NUMBER;
2016 l_acc_rev_natural_side_code VARCHAR2(1);
2017
2018 l_num_entries NUMBER;
2019 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
2020 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
2021 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
2022 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
2023 l_recog_line_1 NUMBER;
2024 l_recog_line_2 NUMBER;
2025
2026 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
2027 l_bflow_applied_to_amt NUMBER; -- 5132302
2028 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
2029
2030 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2031
2032 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
2033 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
2034
2035 ---------------------------------------------------------------------------------------------------------------
2036
2037
2038 --
2039 -- bulk performance
2040 --
2041 l_balance_type_code VARCHAR2(1);
2042 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2043 l_log_module VARCHAR2(240);
2044
2045 --
2046 -- Upgrade strategy
2047 --
2048 l_actual_upg_option VARCHAR2(1);
2049 l_enc_upg_option VARCHAR2(1);
2050
2051 --
2052 BEGIN
2053 --
2054 IF g_log_enabled THEN
2055 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_14';
2056 END IF;
2057 --
2058 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2059
2060 trace
2061 (p_msg => 'BEGIN of AcctLineType_14'
2062 ,p_level => C_LEVEL_PROCEDURE
2063 ,p_module => l_log_module);
2064
2065 END IF;
2066 --
2067 l_component_type := 'AMB_JLT';
2068 l_component_code := 'FV_BPA_CANCEL_CR';
2069 l_component_type_code := 'S';
2070 l_component_appl_id := 201;
2071 l_amb_context_code := 'DEFAULT';
2072 l_entity_code := 'PURCHASE_ORDER';
2073 l_event_class_code := 'PO_PA';
2074 l_event_type_code := 'PO_PA_ALL';
2075 l_line_definition_owner_code := 'S';
2076 l_line_definition_code := 'FV_PO_ALL';
2077 --
2078 l_balance_type_code := 'A';
2079 l_segment := NULL;
2080 l_ccid := NULL;
2081 l_adr_transaction_coa_id := NULL;
2082 l_adr_accounting_coa_id := NULL;
2083 l_adr_flexfield_segment_code := NULL;
2084 l_adr_flex_value_set_id := NULL;
2085 l_adr_value_type_code := NULL;
2086 l_adr_value_combination_id := NULL;
2087 l_adr_value_segment_code := NULL;
2088
2089 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
2090 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
2091 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
2092 l_budgetary_control_flag := 'Y';
2093
2094 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2095 l_bflow_applied_to_amt := NULL; -- 5132302
2096 l_entered_amt_idx := NULL; -- 4262811
2097 l_accted_amt_idx := NULL; -- 4262811
2098 l_acc_rev_flag := NULL; -- 4262811
2099 l_accrual_line_num := NULL; -- 4262811
2100 l_tmp_amt := NULL; -- 4262811
2101 --
2102
2103 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2104 l_balance_type_code <> 'B' THEN
2105 IF (NVL(
2106 xla_ae_sources_pkg.GetSystemSourceChar(
2107 p_source_code => 'XLA_EVENT_TYPE_CODE'
2108 , p_source_type_code => 'Y'
2109 , p_source_application_id => 602
2110 ),'
2111 ') = 'PO_PA_CANCELLED' OR
2112 NVL(
2113 xla_ae_sources_pkg.GetSystemSourceChar(
2114 p_source_code => 'XLA_EVENT_TYPE_CODE'
2115 , p_source_type_code => 'Y'
2116 , p_source_application_id => 602
2117 ),'
2118 ') = 'PO_PA_CR_MEMO_CANCELLED') AND
2119 NVL(p_source_13,'
2120 ') = 'M' AND
2121 NVL(p_source_14,'
2122 ') = 'AGREEMENT' AND
2123 NVL(p_source_10,'
2124 ') = 'N'
2125 THEN
2126
2127 --
2128 XLA_AE_LINES_PKG.SetNewLine;
2129
2130 p_balance_type_code := l_balance_type_code;
2134 p_actual_flag :='A';
2131 -- set the flag so later we will know whether the gain loss line needs to be created
2132
2133 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2135 END IF;
2136
2137 --
2138 -- bulk performance
2139 --
2140 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2141 p_header_num => 0); -- 4262811
2142 --
2143 -- set accounting line options
2144 --
2145 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2146 p_natural_side_code => 'C'
2147 , p_gain_or_loss_flag => 'N'
2148 , p_gl_transfer_mode_code => 'S'
2149 , p_acct_entry_type_code => 'A'
2150 , p_switch_side_flag => 'N'
2151 , p_merge_duplicate_code => 'N'
2152 );
2153 --
2154 l_acc_rev_natural_side_code := 'D'; -- 4262811
2155 --
2156 --
2157 -- set accounting line type info
2158 --
2159 xla_ae_lines_pkg.SetAcctLineType
2160 (p_component_type => l_component_type
2161 ,p_event_type_code => l_event_type_code
2162 ,p_line_definition_owner_code => l_line_definition_owner_code
2163 ,p_line_definition_code => l_line_definition_code
2164 ,p_accounting_line_code => l_component_code
2165 ,p_accounting_line_type_code => l_component_type_code
2166 ,p_accounting_line_appl_id => l_component_appl_id
2167 ,p_amb_context_code => l_amb_context_code
2168 ,p_entity_code => l_entity_code
2169 ,p_event_class_code => l_event_class_code);
2170 --
2171 -- set accounting class
2172 --
2173 xla_ae_lines_pkg.SetAcctClass(
2174 p_accounting_class_code => 'PURCHASE_ORDER'
2175 , p_ae_header_id => l_ae_header_id
2176 );
2177
2178 --
2179 -- set rounding class
2180 --
2181 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2182 'PURCHASE_ORDER';
2183
2184 --
2185 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2186 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2187 --
2188 -- bulk performance
2189 --
2190 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2191
2192 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2193 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2194
2195 -- 4955764
2196 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2197 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2198
2199 -- 4458381 Public Sector Enh
2200
2201 --
2202 -- set accounting attributes for the line type
2203 --
2204 l_entered_amt_idx := 23;
2205 l_accted_amt_idx := 25;
2206 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2207 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
2208 l_rec_acct_attrs.array_char_value(1) := p_source_15;
2209 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
2210 l_rec_acct_attrs.array_num_value(2) :=
2211 xla_ae_sources_pkg.GetSystemSourceNum(
2212 p_source_code => 'XLA_EVENT_APPL_ID'
2213 , p_source_type_code => 'Y'
2214 , p_source_application_id => 602
2215 );
2216 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
2217 l_rec_acct_attrs.array_char_value(3) := p_source_17;
2218 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
2219 l_rec_acct_attrs.array_char_value(4) :=
2220 xla_ae_sources_pkg.GetSystemSourceChar(
2221 p_source_code => 'XLA_ENTITY_CODE'
2222 , p_source_type_code => 'Y'
2223 , p_source_application_id => 602
2224 );
2225 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
2226 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
2227 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
2228 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
2229 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
2230 l_rec_acct_attrs.array_num_value(7) := p_source_21;
2231 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2232 l_rec_acct_attrs.array_char_value(8) := p_source_22;
2233 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
2234 l_rec_acct_attrs.array_char_value(9) := p_source_23;
2235 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
2236 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
2237 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2238 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
2239 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
2240 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
2241 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
2242 l_rec_acct_attrs.array_char_value(13) := p_source_17;
2243 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
2244 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
2245 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
2246 l_rec_acct_attrs.array_num_value(15) := p_source_26;
2247 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
2248 l_rec_acct_attrs.array_char_value(16) := p_source_27;
2249 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
2250 l_rec_acct_attrs.array_num_value(17) := p_source_28;
2251 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
2252 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
2253 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
2254 l_rec_acct_attrs.array_num_value(19) := p_source_26;
2255 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
2256 l_rec_acct_attrs.array_char_value(20) := p_source_27;
2257 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
2258 l_rec_acct_attrs.array_num_value(21) := p_source_28;
2259 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
2260 l_rec_acct_attrs.array_char_value(22) := p_source_29;
2261 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
2262 l_rec_acct_attrs.array_num_value(23) := p_source_30;
2263 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
2264 l_rec_acct_attrs.array_char_value(24) := p_source_27;
2265 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
2266 l_rec_acct_attrs.array_num_value(25) := p_source_30;
2267 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
2268 l_rec_acct_attrs.array_char_value(26) := p_source_31;
2269 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
2270 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
2271 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
2272 l_rec_acct_attrs.array_char_value(28) := p_source_22;
2273 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
2274 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
2275 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
2276 l_rec_acct_attrs.array_num_value(30) := p_source_32;
2277 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
2278 l_rec_acct_attrs.array_num_value(31) := p_source_32;
2279
2280 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2281 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2282
2283 ---------------------------------------------------------------------------------------------------------------
2284 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2285 ---------------------------------------------------------------------------------------------------------------
2286 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2287
2288 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2289 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2290
2291 IF xla_accounting_cache_pkg.GetValueChar
2292 (p_source_code => 'LEDGER_CATEGORY_CODE'
2293 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2294 AND l_bflow_method_code = 'PRIOR_ENTRY'
2295 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2296 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2297 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2298 )
2299 THEN
2300 xla_ae_lines_pkg.BflowUpgEntry
2301 (p_business_method_code => l_bflow_method_code
2302 ,p_business_class_code => l_bflow_class_code
2303 ,p_balance_type => l_balance_type_code);
2304 ELSE
2305 NULL;
2306 XLA_AE_LINES_PKG.business_flow_validation(
2307 p_business_method_code => l_bflow_method_code
2308 ,p_business_class_code => l_bflow_class_code
2309 ,p_inherit_description_flag => l_inherit_desc_flag);
2310 END IF;
2311
2312 --
2313 -- call analytical criteria
2314 --
2315 -- Inherited Analytical Criteria for business flow method of Prior Entry.
2316 --
2317 -- call description
2318 --
2319 -- No description or it is inherited.
2320 --
2321 -- call ADRs
2322 -- Bug 4922099
2323 --
2324 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2325 (NVL(l_actual_upg_option, 'N') = 'O') OR
2326 (NVL(l_enc_upg_option, 'N') = 'O')
2327 )
2328 THEN
2329 NULL;
2330 --
2331 --
2332
2333 --
2334 --
2335 END IF;
2336 --
2337 -- Bug 4922099
2338 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2339 (NVL(l_enc_upg_option, 'N') = 'O')
2340 ) AND
2341 (l_bflow_method_code = 'PRIOR_ENTRY')
2342 )
2343 THEN
2344 IF
2345 --
2346 1 = 1
2347 --
2348 THEN
2349 xla_accounting_err_pkg.build_message
2350 (p_appli_s_name => 'XLA'
2351 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2352 ,p_token_1 => 'LINE_NUMBER'
2353 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
2354 ,p_token_2 => 'LINE_TYPE_NAME'
2355 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2356 l_component_type
2357 ,l_component_code
2358 ,l_component_type_code
2359 ,l_component_appl_id
2360 ,l_amb_context_code
2361 ,l_entity_code
2362 ,l_event_class_code
2363 )
2364 ,p_token_3 => 'OWNER'
2365 ,p_value_3 => xla_lookups_pkg.get_meaning(
2366 p_lookup_type => 'XLA_OWNER_TYPE'
2367 ,p_lookup_code => l_component_type_code
2368 )
2369 ,p_token_4 => 'PRODUCT_NAME'
2370 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
2371 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2372 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2373 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2374 ,p_ae_header_id => NULL
2375 );
2376
2377 IF (C_LEVEL_ERROR>= g_log_level) THEN
2378 trace
2379 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2380 ,p_level => C_LEVEL_ERROR
2381 ,p_module => l_log_module);
2382 END IF;
2383 END IF;
2384 END IF;
2385 --
2386 --
2387 ------------------------------------------------------------------------------------------------
2388 -- 4219869 Business Flow
2389 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
2390 -- Prior Entry. Currently, the following code is always generated.
2391 ------------------------------------------------------------------------------------------------
2392 -- No ValidateCurrentLine for business flow method of Prior Entry
2393
2394 ------------------------------------------------------------------------------------
2395 -- 4219869 Business Flow
2396 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
2397 ------------------------------------------------------------------------------------
2398 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2399
2400 ----------------------------------------------------------------------------------
2401 -- 4219869 Business Flow
2402 -- Update journal entry status -- Need to generate this within IF <condition>
2403 ----------------------------------------------------------------------------------
2404 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2405 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
2406 ,p_balance_type_code => l_balance_type_code
2407 );
2408
2409 -------------------------------------------------------------------------------------------
2410 -- 4262811 - Generate the Accrual Reversal lines
2411 -------------------------------------------------------------------------------------------
2412 BEGIN
2413 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
2414 (g_array_event(p_event_id).array_value_num('header_index'));
2415 IF l_acc_rev_flag IS NULL THEN
2416 l_acc_rev_flag := 'N';
2417 END IF;
2418 EXCEPTION
2419 WHEN OTHERS THEN
2420 l_acc_rev_flag := 'N';
2421 END;
2422 --
2423 IF (l_acc_rev_flag = 'Y') THEN
2424
2425 -- 4645092 ------------------------------------------------------------------------------
2426 -- To allow MPA report to determine if it should generate report process
2427 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
2428 ------------------------------------------------------------------------------------------
2429
2430 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
2431 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
2432
2433 --
2434 -- Update the line information that should be overwritten
2435 --
2436 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
2437 p_header_num => 1);
2438 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
2439
2440 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
2441
2442 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
2443 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
2444 END IF;
2445
2446 --
2447 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
2448 --
2449 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
2450 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
2451 ELSE
2452 ---------------------------------------------------------------------------------------------------
2453 -- 4262811a Switch Sign
2454 ---------------------------------------------------------------------------------------------------
2455 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
2456 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2457 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2458 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2459 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2460 -- 5132302
2461 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
2462 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2463
2464 END IF;
2465
2466 -- 4955764
2467 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2468 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
2469
2470
2471 XLA_AE_LINES_PKG.ValidateCurrentLine;
2472 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2473
2474 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2475 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
2476 ,p_balance_type_code => l_balance_type_code);
2477
2478 END IF;
2479
2480 -----------------------------------------------------------------------------------------
2481 -- 4262811 Multiperiod Accounting
2485
2482 -----------------------------------------------------------------------------------------
2483 -- No MPA option is assigned.
2484
2486 END IF;
2487 END IF;
2488 --
2489
2490 --
2491 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2492 trace
2493 (p_msg => 'END of AcctLineType_14'
2494 ,p_level => C_LEVEL_PROCEDURE
2495 ,p_module => l_log_module);
2496 END IF;
2497 --
2498 EXCEPTION
2499 WHEN xla_exceptions_pkg.application_exception THEN
2500 RAISE;
2501 WHEN OTHERS THEN
2502 xla_exceptions_pkg.raise_message
2503 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_14');
2504 END AcctLineType_14;
2505 --
2506
2507 ---------------------------------------
2508 --
2509 -- PRIVATE FUNCTION
2510 -- AcctLineType_15
2511 --
2512 ---------------------------------------
2513 PROCEDURE AcctLineType_15 (
2514 p_application_id IN NUMBER
2515 ,p_event_id IN NUMBER
2516 ,p_calculate_acctd_flag IN VARCHAR2
2517 ,p_calculate_g_l_flag IN VARCHAR2
2518 ,p_actual_flag IN OUT VARCHAR2
2519 ,p_balance_type_code OUT VARCHAR2
2520 ,p_gain_or_loss_ref OUT VARCHAR2
2521
2522 --Budget Account
2523 , p_source_9 IN NUMBER
2524 --Federal Prior Year Flag
2525 , p_source_10 IN VARCHAR2
2526 --Main Or Backing Code
2527 , p_source_13 IN VARCHAR2
2528 --PO Distribution Type
2529 , p_source_14 IN VARCHAR2
2530 --Accounting Reversal Flag
2531 , p_source_15 IN VARCHAR2
2532 --Distribution Link Type
2533 , p_source_17 IN VARCHAR2
2534 --PO Distribution Identifier
2535 , p_source_19 IN NUMBER
2536 --PO Header Identifier
2537 , p_source_20 IN NUMBER
2538 --Applied To Application Identifier
2539 , p_source_21 IN NUMBER
2540 --Applied To Distribution Link Type
2541 , p_source_22 IN VARCHAR2
2542 --Applied To Entity Code
2543 , p_source_23 IN VARCHAR2
2544 --Applied To Distribution Identifier 1
2545 , p_source_24 IN NUMBER
2546 --Applied To Header Identifier 1
2547 , p_source_25 IN NUMBER
2548 --Entered Amount
2549 , p_source_26 IN NUMBER
2550 --Currency Code
2551 , p_source_27 IN VARCHAR2
2552 --Accounted Amount
2553 , p_source_28 IN NUMBER
2554 --PO Encumbrance Upgrade Option
2555 , p_source_29 IN VARCHAR2
2556 --JFMIP Reference
2557 , p_source_31 IN VARCHAR2
2558 --PO Upgrade Encumbrance Type Identifier
2559 , p_source_32 IN NUMBER
2560 )
2561 IS
2562
2563 l_component_type VARCHAR2(80);
2564 l_component_code VARCHAR2(30);
2565 l_component_type_code VARCHAR2(1);
2566 l_component_appl_id INTEGER;
2567 l_amb_context_code VARCHAR2(30);
2568 l_entity_code VARCHAR2(30);
2569 l_event_class_code VARCHAR2(30);
2570 l_ae_header_id NUMBER;
2571 l_event_type_code VARCHAR2(30);
2572 l_line_definition_code VARCHAR2(30);
2573 l_line_definition_owner_code VARCHAR2(1);
2574 --
2575 -- adr variables
2576 l_segment VARCHAR2(30);
2577 l_ccid NUMBER;
2578 l_adr_transaction_coa_id NUMBER;
2579 l_adr_accounting_coa_id NUMBER;
2580 l_adr_flexfield_segment_code VARCHAR2(30);
2581 l_adr_flex_value_set_id NUMBER;
2582 l_adr_value_type_code VARCHAR2(30);
2583 l_adr_value_combination_id NUMBER;
2584 l_adr_value_segment_code VARCHAR2(30);
2585
2586 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
2587 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
2588 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
2589 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
2590
2591 -- 4262811 Variables ------------------------------------------------------------------------------------------
2592 l_entered_amt_idx NUMBER;
2593 l_accted_amt_idx NUMBER;
2594 l_acc_rev_flag VARCHAR2(1);
2595 l_accrual_line_num NUMBER;
2596 l_tmp_amt NUMBER;
2597 l_acc_rev_natural_side_code VARCHAR2(1);
2598
2599 l_num_entries NUMBER;
2600 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
2601 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
2602 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
2603 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
2604 l_recog_line_1 NUMBER;
2605 l_recog_line_2 NUMBER;
2606
2607 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
2608 l_bflow_applied_to_amt NUMBER; -- 5132302
2609 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
2610
2611 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2612
2613 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
2614 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
2615
2616 ---------------------------------------------------------------------------------------------------------------
2617
2618
2619 --
2620 -- bulk performance
2621 --
2622 l_balance_type_code VARCHAR2(1);
2623 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2624 l_log_module VARCHAR2(240);
2625
2626 --
2627 -- Upgrade strategy
2628 --
2629 l_actual_upg_option VARCHAR2(1);
2630 l_enc_upg_option VARCHAR2(1);
2631
2632 --
2633 BEGIN
2634 --
2635 IF g_log_enabled THEN
2636 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_15';
2637 END IF;
2638 --
2639 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2640
2641 trace
2642 (p_msg => 'BEGIN of AcctLineType_15'
2643 ,p_level => C_LEVEL_PROCEDURE
2644 ,p_module => l_log_module);
2645
2646 END IF;
2647 --
2648 l_component_type := 'AMB_JLT';
2649 l_component_code := 'FV_BPA_CANCEL_DR';
2650 l_component_type_code := 'S';
2651 l_component_appl_id := 201;
2652 l_amb_context_code := 'DEFAULT';
2653 l_entity_code := 'PURCHASE_ORDER';
2654 l_event_class_code := 'PO_PA';
2655 l_event_type_code := 'PO_PA_ALL';
2656 l_line_definition_owner_code := 'S';
2657 l_line_definition_code := 'FV_PO_ALL';
2658 --
2659 l_balance_type_code := 'A';
2660 l_segment := NULL;
2661 l_ccid := NULL;
2662 l_adr_transaction_coa_id := NULL;
2663 l_adr_accounting_coa_id := NULL;
2664 l_adr_flexfield_segment_code := NULL;
2665 l_adr_flex_value_set_id := NULL;
2666 l_adr_value_type_code := NULL;
2667 l_adr_value_combination_id := NULL;
2668 l_adr_value_segment_code := NULL;
2669
2670 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
2671 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
2672 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
2673 l_budgetary_control_flag := 'Y';
2674
2675 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2676 l_bflow_applied_to_amt := NULL; -- 5132302
2677 l_entered_amt_idx := NULL; -- 4262811
2678 l_accted_amt_idx := NULL; -- 4262811
2679 l_acc_rev_flag := NULL; -- 4262811
2680 l_accrual_line_num := NULL; -- 4262811
2681 l_tmp_amt := NULL; -- 4262811
2682 --
2683
2684 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2685 l_balance_type_code <> 'B' THEN
2686 IF (NVL(
2687 xla_ae_sources_pkg.GetSystemSourceChar(
2688 p_source_code => 'XLA_EVENT_TYPE_CODE'
2689 , p_source_type_code => 'Y'
2690 , p_source_application_id => 602
2691 ),'
2692 ') = 'PO_PA_CANCELLED' OR
2693 NVL(
2694 xla_ae_sources_pkg.GetSystemSourceChar(
2695 p_source_code => 'XLA_EVENT_TYPE_CODE'
2696 , p_source_type_code => 'Y'
2697 , p_source_application_id => 602
2698 ),'
2699 ') = 'PO_PA_CR_MEMO_CANCELLED') AND
2700 NVL(p_source_13,'
2701 ') = 'M' AND
2702 NVL(p_source_14,'
2703 ') = 'AGREEMENT' AND
2704 NVL(p_source_10,'
2705 ') = 'N'
2706 THEN
2707
2708 --
2709 XLA_AE_LINES_PKG.SetNewLine;
2710
2711 p_balance_type_code := l_balance_type_code;
2712 -- set the flag so later we will know whether the gain loss line needs to be created
2713
2714 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2715 p_actual_flag :='A';
2716 END IF;
2717
2718 --
2719 -- bulk performance
2720 --
2721 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2722 p_header_num => 0); -- 4262811
2723 --
2724 -- set accounting line options
2725 --
2726 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2727 p_natural_side_code => 'D'
2728 , p_gain_or_loss_flag => 'N'
2729 , p_gl_transfer_mode_code => 'S'
2730 , p_acct_entry_type_code => 'A'
2731 , p_switch_side_flag => 'N'
2732 , p_merge_duplicate_code => 'N'
2733 );
2734 --
2735 l_acc_rev_natural_side_code := 'C'; -- 4262811
2736 --
2737 --
2738 -- set accounting line type info
2739 --
2740 xla_ae_lines_pkg.SetAcctLineType
2741 (p_component_type => l_component_type
2742 ,p_event_type_code => l_event_type_code
2743 ,p_line_definition_owner_code => l_line_definition_owner_code
2744 ,p_line_definition_code => l_line_definition_code
2745 ,p_accounting_line_code => l_component_code
2746 ,p_accounting_line_type_code => l_component_type_code
2747 ,p_accounting_line_appl_id => l_component_appl_id
2748 ,p_amb_context_code => l_amb_context_code
2749 ,p_entity_code => l_entity_code
2750 ,p_event_class_code => l_event_class_code);
2751 --
2752 -- set accounting class
2753 --
2754 xla_ae_lines_pkg.SetAcctClass(
2755 p_accounting_class_code => 'PURCHASE_ORDER'
2756 , p_ae_header_id => l_ae_header_id
2757 );
2758
2759 --
2760 -- set rounding class
2761 --
2762 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2763 'PURCHASE_ORDER';
2764
2765 --
2766 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2767 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2768 --
2769 -- bulk performance
2770 --
2771 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2772
2773 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2774 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2775
2776 -- 4955764
2777 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2778 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2779
2780 -- 4458381 Public Sector Enh
2781
2782 --
2783 -- set accounting attributes for the line type
2784 --
2785 l_entered_amt_idx := 23;
2786 l_accted_amt_idx := 25;
2787 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2788 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
2789 l_rec_acct_attrs.array_char_value(1) := p_source_15;
2790 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
2791 l_rec_acct_attrs.array_num_value(2) :=
2792 xla_ae_sources_pkg.GetSystemSourceNum(
2793 p_source_code => 'XLA_EVENT_APPL_ID'
2794 , p_source_type_code => 'Y'
2795 , p_source_application_id => 602
2796 );
2797 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
2798 l_rec_acct_attrs.array_char_value(3) := p_source_17;
2799 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
2800 l_rec_acct_attrs.array_char_value(4) :=
2801 xla_ae_sources_pkg.GetSystemSourceChar(
2802 p_source_code => 'XLA_ENTITY_CODE'
2803 , p_source_type_code => 'Y'
2804 , p_source_application_id => 602
2805 );
2806 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
2807 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
2808 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
2809 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
2810 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
2811 l_rec_acct_attrs.array_num_value(7) := p_source_21;
2812 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2813 l_rec_acct_attrs.array_char_value(8) := p_source_22;
2814 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
2815 l_rec_acct_attrs.array_char_value(9) := p_source_23;
2816 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
2817 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
2818 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2819 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
2820 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
2821 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
2822 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
2823 l_rec_acct_attrs.array_char_value(13) := p_source_17;
2824 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
2825 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
2826 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
2827 l_rec_acct_attrs.array_num_value(15) := p_source_26;
2828 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
2829 l_rec_acct_attrs.array_char_value(16) := p_source_27;
2830 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
2831 l_rec_acct_attrs.array_num_value(17) := p_source_28;
2832 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
2833 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
2834 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
2835 l_rec_acct_attrs.array_num_value(19) := p_source_26;
2836 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
2837 l_rec_acct_attrs.array_char_value(20) := p_source_27;
2838 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
2839 l_rec_acct_attrs.array_num_value(21) := p_source_28;
2840 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
2841 l_rec_acct_attrs.array_char_value(22) := p_source_29;
2842 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
2843 l_rec_acct_attrs.array_num_value(23) := p_source_26;
2844 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
2845 l_rec_acct_attrs.array_char_value(24) := p_source_27;
2846 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
2847 l_rec_acct_attrs.array_num_value(25) := p_source_28;
2848 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
2849 l_rec_acct_attrs.array_char_value(26) := p_source_31;
2850 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
2851 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
2852 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
2853 l_rec_acct_attrs.array_char_value(28) := p_source_22;
2854 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
2855 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
2856 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
2857 l_rec_acct_attrs.array_num_value(30) := p_source_32;
2858 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
2859 l_rec_acct_attrs.array_num_value(31) := p_source_32;
2860
2861 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2862 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2863
2864 ---------------------------------------------------------------------------------------------------------------
2865 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2866 ---------------------------------------------------------------------------------------------------------------
2867 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2868
2869 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2870 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2871
2872 IF xla_accounting_cache_pkg.GetValueChar
2873 (p_source_code => 'LEDGER_CATEGORY_CODE'
2874 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2875 AND l_bflow_method_code = 'PRIOR_ENTRY'
2876 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2877 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2878 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2879 )
2880 THEN
2881 xla_ae_lines_pkg.BflowUpgEntry
2882 (p_business_method_code => l_bflow_method_code
2883 ,p_business_class_code => l_bflow_class_code
2884 ,p_balance_type => l_balance_type_code);
2885 ELSE
2886 NULL;
2887 XLA_AE_LINES_PKG.business_flow_validation(
2888 p_business_method_code => l_bflow_method_code
2889 ,p_business_class_code => l_bflow_class_code
2890 ,p_inherit_description_flag => l_inherit_desc_flag);
2891 END IF;
2892
2893 --
2894 -- call analytical criteria
2895 --
2896 -- Inherited Analytical Criteria for business flow method of Prior Entry.
2897 --
2898 -- call description
2899 --
2903 -- Bug 4922099
2900 -- No description or it is inherited.
2901 --
2902 -- call ADRs
2904 --
2905 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2906 (NVL(l_actual_upg_option, 'N') = 'O') OR
2907 (NVL(l_enc_upg_option, 'N') = 'O')
2908 )
2909 THEN
2910 NULL;
2911 --
2912 --
2913
2914 --
2915 --
2916 END IF;
2917 --
2918 -- Bug 4922099
2919 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2920 (NVL(l_enc_upg_option, 'N') = 'O')
2921 ) AND
2922 (l_bflow_method_code = 'PRIOR_ENTRY')
2923 )
2924 THEN
2925 IF
2926 --
2927 1 = 1
2928 --
2929 THEN
2930 xla_accounting_err_pkg.build_message
2931 (p_appli_s_name => 'XLA'
2932 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2933 ,p_token_1 => 'LINE_NUMBER'
2934 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
2935 ,p_token_2 => 'LINE_TYPE_NAME'
2936 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2937 l_component_type
2938 ,l_component_code
2939 ,l_component_type_code
2940 ,l_component_appl_id
2941 ,l_amb_context_code
2942 ,l_entity_code
2943 ,l_event_class_code
2944 )
2945 ,p_token_3 => 'OWNER'
2946 ,p_value_3 => xla_lookups_pkg.get_meaning(
2947 p_lookup_type => 'XLA_OWNER_TYPE'
2948 ,p_lookup_code => l_component_type_code
2949 )
2950 ,p_token_4 => 'PRODUCT_NAME'
2951 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
2952 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2953 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2954 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2955 ,p_ae_header_id => NULL
2956 );
2957
2958 IF (C_LEVEL_ERROR>= g_log_level) THEN
2959 trace
2960 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2961 ,p_level => C_LEVEL_ERROR
2962 ,p_module => l_log_module);
2963 END IF;
2964 END IF;
2965 END IF;
2966 --
2967 --
2968 ------------------------------------------------------------------------------------------------
2969 -- 4219869 Business Flow
2970 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
2971 -- Prior Entry. Currently, the following code is always generated.
2972 ------------------------------------------------------------------------------------------------
2973 -- No ValidateCurrentLine for business flow method of Prior Entry
2974
2975 ------------------------------------------------------------------------------------
2976 -- 4219869 Business Flow
2977 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
2978 ------------------------------------------------------------------------------------
2979 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2980
2981 ----------------------------------------------------------------------------------
2982 -- 4219869 Business Flow
2983 -- Update journal entry status -- Need to generate this within IF <condition>
2984 ----------------------------------------------------------------------------------
2985 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2986 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
2987 ,p_balance_type_code => l_balance_type_code
2988 );
2989
2990 -------------------------------------------------------------------------------------------
2991 -- 4262811 - Generate the Accrual Reversal lines
2992 -------------------------------------------------------------------------------------------
2993 BEGIN
2994 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
2995 (g_array_event(p_event_id).array_value_num('header_index'));
2996 IF l_acc_rev_flag IS NULL THEN
2997 l_acc_rev_flag := 'N';
2998 END IF;
2999 EXCEPTION
3000 WHEN OTHERS THEN
3001 l_acc_rev_flag := 'N';
3002 END;
3003 --
3004 IF (l_acc_rev_flag = 'Y') THEN
3005
3006 -- 4645092 ------------------------------------------------------------------------------
3010
3007 -- To allow MPA report to determine if it should generate report process
3008 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3009 ------------------------------------------------------------------------------------------
3011 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3012 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3013
3014 --
3015 -- Update the line information that should be overwritten
3016 --
3017 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3018 p_header_num => 1);
3019 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3020
3021 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3022
3023 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3024 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3025 END IF;
3026
3027 --
3028 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3029 --
3030 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3031 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3032 ELSE
3033 ---------------------------------------------------------------------------------------------------
3034 -- 4262811a Switch Sign
3035 ---------------------------------------------------------------------------------------------------
3036 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3037 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3038 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3039 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3040 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3041 -- 5132302
3042 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3043 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3044
3045 END IF;
3046
3047 -- 4955764
3048 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3049 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3050
3051
3052 XLA_AE_LINES_PKG.ValidateCurrentLine;
3053 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3054
3055 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3056 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3057 ,p_balance_type_code => l_balance_type_code);
3058
3059 END IF;
3060
3061 -----------------------------------------------------------------------------------------
3062 -- 4262811 Multiperiod Accounting
3063 -----------------------------------------------------------------------------------------
3064 -- No MPA option is assigned.
3065
3066
3067 END IF;
3068 END IF;
3069 --
3070
3071 --
3072 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3073 trace
3074 (p_msg => 'END of AcctLineType_15'
3075 ,p_level => C_LEVEL_PROCEDURE
3076 ,p_module => l_log_module);
3077 END IF;
3078 --
3079 EXCEPTION
3080 WHEN xla_exceptions_pkg.application_exception THEN
3081 RAISE;
3082 WHEN OTHERS THEN
3083 xla_exceptions_pkg.raise_message
3084 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_15');
3085 END AcctLineType_15;
3086 --
3087
3088 ---------------------------------------
3089 --
3090 -- PRIVATE FUNCTION
3091 -- AcctLineType_16
3092 --
3093 ---------------------------------------
3094 PROCEDURE AcctLineType_16 (
3095 p_application_id IN NUMBER
3096 ,p_event_id IN NUMBER
3097 ,p_calculate_acctd_flag IN VARCHAR2
3098 ,p_calculate_g_l_flag IN VARCHAR2
3099 ,p_actual_flag IN OUT VARCHAR2
3100 ,p_balance_type_code OUT VARCHAR2
3101 ,p_gain_or_loss_ref OUT VARCHAR2
3102
3103 --Budget Account
3104 , p_source_9 IN NUMBER
3105 --Main Or Backing Code
3106 , p_source_13 IN VARCHAR2
3107 --Accounting Reversal Flag
3108 , p_source_15 IN VARCHAR2
3109 --Distribution Link Type
3110 , p_source_17 IN VARCHAR2
3111 --PO Distribution Identifier
3112 , p_source_19 IN NUMBER
3113 --PO Header Identifier
3114 , p_source_20 IN NUMBER
3115 --Applied To Application Identifier
3116 , p_source_21 IN NUMBER
3117 --Applied To Distribution Link Type
3118 , p_source_22 IN VARCHAR2
3119 --Applied To Entity Code
3120 , p_source_23 IN VARCHAR2
3121 --Applied To Distribution Identifier 1
3122 , p_source_24 IN NUMBER
3123 --Applied To Header Identifier 1
3124 , p_source_25 IN NUMBER
3125 --Entered Amount
3126 , p_source_26 IN NUMBER
3127 --Currency Code
3128 , p_source_27 IN VARCHAR2
3129 --Accounted Amount
3130 , p_source_28 IN NUMBER
3131 --PO Encumbrance Upgrade Option
3132 , p_source_29 IN VARCHAR2
3133 --JFMIP Reference
3134 , p_source_31 IN VARCHAR2
3135 --PO Upgrade Encumbrance Type Identifier
3136 , p_source_32 IN NUMBER
3137 --Allocated to Main Document Distribution Type
3138 , p_source_33 IN VARCHAR2
3139 --Allocated to Main Document Distribution Identifier
3140 , p_source_34 IN NUMBER
3141 )
3142 IS
3143
3144 l_component_type VARCHAR2(80);
3145 l_component_code VARCHAR2(30);
3146 l_component_type_code VARCHAR2(1);
3147 l_component_appl_id INTEGER;
3148 l_amb_context_code VARCHAR2(30);
3149 l_entity_code VARCHAR2(30);
3150 l_event_class_code VARCHAR2(30);
3151 l_ae_header_id NUMBER;
3152 l_event_type_code VARCHAR2(30);
3153 l_line_definition_code VARCHAR2(30);
3154 l_line_definition_owner_code VARCHAR2(1);
3155 --
3156 -- adr variables
3157 l_segment VARCHAR2(30);
3158 l_ccid NUMBER;
3159 l_adr_transaction_coa_id NUMBER;
3160 l_adr_accounting_coa_id NUMBER;
3161 l_adr_flexfield_segment_code VARCHAR2(30);
3162 l_adr_flex_value_set_id NUMBER;
3163 l_adr_value_type_code VARCHAR2(30);
3164 l_adr_value_combination_id NUMBER;
3165 l_adr_value_segment_code VARCHAR2(30);
3166
3167 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3168 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3169 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3170 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3171
3172 -- 4262811 Variables ------------------------------------------------------------------------------------------
3173 l_entered_amt_idx NUMBER;
3174 l_accted_amt_idx NUMBER;
3175 l_acc_rev_flag VARCHAR2(1);
3176 l_accrual_line_num NUMBER;
3177 l_tmp_amt NUMBER;
3178 l_acc_rev_natural_side_code VARCHAR2(1);
3179
3180 l_num_entries NUMBER;
3181 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3182 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3183 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3184 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3185 l_recog_line_1 NUMBER;
3186 l_recog_line_2 NUMBER;
3187
3188 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3189 l_bflow_applied_to_amt NUMBER; -- 5132302
3190 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3191
3192 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3193
3194 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3195 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3196
3197 ---------------------------------------------------------------------------------------------------------------
3198
3199
3200 --
3201 -- bulk performance
3202 --
3203 l_balance_type_code VARCHAR2(1);
3204 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3205 l_log_module VARCHAR2(240);
3206
3207 --
3208 -- Upgrade strategy
3209 --
3210 l_actual_upg_option VARCHAR2(1);
3211 l_enc_upg_option VARCHAR2(1);
3212
3213 --
3214 BEGIN
3215 --
3216 IF g_log_enabled THEN
3217 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_16';
3218 END IF;
3219 --
3220 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3221
3222 trace
3223 (p_msg => 'BEGIN of AcctLineType_16'
3224 ,p_level => C_LEVEL_PROCEDURE
3225 ,p_module => l_log_module);
3226
3227 END IF;
3228 --
3229 l_component_type := 'AMB_JLT';
3230 l_component_code := 'FV_BPA_RELIEVE_CR';
3231 l_component_type_code := 'S';
3232 l_component_appl_id := 201;
3233 l_amb_context_code := 'DEFAULT';
3234 l_entity_code := 'PURCHASE_ORDER';
3235 l_event_class_code := 'PO_PA';
3236 l_event_type_code := 'PO_PA_ALL';
3237 l_line_definition_owner_code := 'S';
3238 l_line_definition_code := 'FV_PO_ALL';
3239 --
3240 l_balance_type_code := 'A';
3241 l_segment := NULL;
3242 l_ccid := NULL;
3243 l_adr_transaction_coa_id := NULL;
3244 l_adr_accounting_coa_id := NULL;
3245 l_adr_flexfield_segment_code := NULL;
3246 l_adr_flex_value_set_id := NULL;
3247 l_adr_value_type_code := NULL;
3248 l_adr_value_combination_id := NULL;
3249 l_adr_value_segment_code := NULL;
3250
3251 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
3252 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
3253 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
3254 l_budgetary_control_flag := 'Y';
3255
3256 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3257 l_bflow_applied_to_amt := NULL; -- 5132302
3258 l_entered_amt_idx := NULL; -- 4262811
3259 l_accted_amt_idx := NULL; -- 4262811
3260 l_acc_rev_flag := NULL; -- 4262811
3261 l_accrual_line_num := NULL; -- 4262811
3262 l_tmp_amt := NULL; -- 4262811
3263 --
3264
3265 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3266 l_balance_type_code <> 'B' THEN
3267 IF NVL(
3268 xla_ae_sources_pkg.GetSystemSourceChar(
3269 p_source_code => 'XLA_EVENT_TYPE_CODE'
3270 , p_source_type_code => 'Y'
3271 , p_source_application_id => 602
3272 ),'
3273 ') = 'PO_PA_RESERVED' AND
3274 NVL(p_source_13,'
3275 ') = 'B_PA'
3276 THEN
3277
3278 --
3279 XLA_AE_LINES_PKG.SetNewLine;
3280
3281 p_balance_type_code := l_balance_type_code;
3282 -- set the flag so later we will know whether the gain loss line needs to be created
3283
3284 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3285 p_actual_flag :='A';
3286 END IF;
3287
3288 --
3289 -- bulk performance
3290 --
3291 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3292 p_header_num => 0); -- 4262811
3293 --
3294 -- set accounting line options
3295 --
3296 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3297 p_natural_side_code => 'C'
3298 , p_gain_or_loss_flag => 'N'
3299 , p_gl_transfer_mode_code => 'S'
3300 , p_acct_entry_type_code => 'A'
3301 , p_switch_side_flag => 'N'
3302 , p_merge_duplicate_code => 'N'
3303 );
3304 --
3305 l_acc_rev_natural_side_code := 'D'; -- 4262811
3306 --
3307 --
3308 -- set accounting line type info
3309 --
3310 xla_ae_lines_pkg.SetAcctLineType
3311 (p_component_type => l_component_type
3312 ,p_event_type_code => l_event_type_code
3313 ,p_line_definition_owner_code => l_line_definition_owner_code
3314 ,p_line_definition_code => l_line_definition_code
3315 ,p_accounting_line_code => l_component_code
3316 ,p_accounting_line_type_code => l_component_type_code
3317 ,p_accounting_line_appl_id => l_component_appl_id
3318 ,p_amb_context_code => l_amb_context_code
3319 ,p_entity_code => l_entity_code
3320 ,p_event_class_code => l_event_class_code);
3321 --
3322 -- set accounting class
3323 --
3324 xla_ae_lines_pkg.SetAcctClass(
3325 p_accounting_class_code => 'PURCHASE_ORDER'
3326 , p_ae_header_id => l_ae_header_id
3327 );
3328
3329 --
3330 -- set rounding class
3331 --
3332 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3333 'PURCHASE_ORDER';
3334
3335 --
3336 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3337 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3338 --
3339 -- bulk performance
3340 --
3341 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3342
3343 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3344 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3345
3346 -- 4955764
3347 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3348 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3349
3350 -- 4458381 Public Sector Enh
3351
3352 --
3353 -- set accounting attributes for the line type
3354 --
3355 l_entered_amt_idx := 23;
3356 l_accted_amt_idx := 25;
3357 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3358 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
3359 l_rec_acct_attrs.array_char_value(1) := p_source_15;
3360 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
3361 l_rec_acct_attrs.array_num_value(2) :=
3362 xla_ae_sources_pkg.GetSystemSourceNum(
3363 p_source_code => 'XLA_EVENT_APPL_ID'
3364 , p_source_type_code => 'Y'
3365 , p_source_application_id => 602
3366 );
3367 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
3368 l_rec_acct_attrs.array_char_value(3) := p_source_33;
3369 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
3370 l_rec_acct_attrs.array_char_value(4) :=
3371 xla_ae_sources_pkg.GetSystemSourceChar(
3372 p_source_code => 'XLA_ENTITY_CODE'
3373 , p_source_type_code => 'Y'
3374 , p_source_application_id => 602
3375 );
3376 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
3377 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
3378 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
3379 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
3380 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
3381 l_rec_acct_attrs.array_num_value(7) := p_source_21;
3382 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
3383 l_rec_acct_attrs.array_char_value(8) := p_source_22;
3384 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
3385 l_rec_acct_attrs.array_char_value(9) := p_source_23;
3386 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
3387 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
3388 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
3389 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
3390 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
3391 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
3392 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
3393 l_rec_acct_attrs.array_char_value(13) := p_source_17;
3394 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
3395 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
3396 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
3397 l_rec_acct_attrs.array_num_value(15) := p_source_26;
3398 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
3399 l_rec_acct_attrs.array_char_value(16) := p_source_27;
3400 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
3401 l_rec_acct_attrs.array_num_value(17) := p_source_28;
3402 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
3403 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
3404 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
3405 l_rec_acct_attrs.array_num_value(19) := p_source_26;
3406 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
3407 l_rec_acct_attrs.array_char_value(20) := p_source_27;
3408 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
3409 l_rec_acct_attrs.array_num_value(21) := p_source_28;
3410 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
3411 l_rec_acct_attrs.array_char_value(22) := p_source_29;
3412 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
3413 l_rec_acct_attrs.array_num_value(23) := p_source_26;
3414 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
3415 l_rec_acct_attrs.array_char_value(24) := p_source_27;
3416 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
3417 l_rec_acct_attrs.array_num_value(25) := p_source_28;
3418 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
3419 l_rec_acct_attrs.array_char_value(26) := p_source_31;
3420 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
3421 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
3422 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
3423 l_rec_acct_attrs.array_char_value(28) := p_source_22;
3424 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
3425 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
3426 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
3427 l_rec_acct_attrs.array_num_value(30) := p_source_32;
3428 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
3429 l_rec_acct_attrs.array_num_value(31) := p_source_32;
3430
3431 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3432 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3433
3434 ---------------------------------------------------------------------------------------------------------------
3435 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3436 ---------------------------------------------------------------------------------------------------------------
3437 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3438
3439 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3440 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3441
3442 IF xla_accounting_cache_pkg.GetValueChar
3443 (p_source_code => 'LEDGER_CATEGORY_CODE'
3444 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3445 AND l_bflow_method_code = 'PRIOR_ENTRY'
3446 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3447 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3448 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3449 )
3450 THEN
3454 ,p_balance_type => l_balance_type_code);
3451 xla_ae_lines_pkg.BflowUpgEntry
3452 (p_business_method_code => l_bflow_method_code
3453 ,p_business_class_code => l_bflow_class_code
3455 ELSE
3456 NULL;
3457 XLA_AE_LINES_PKG.business_flow_validation(
3458 p_business_method_code => l_bflow_method_code
3459 ,p_business_class_code => l_bflow_class_code
3460 ,p_inherit_description_flag => l_inherit_desc_flag);
3461 END IF;
3462
3463 --
3464 -- call analytical criteria
3465 --
3466 -- Inherited Analytical Criteria for business flow method of Prior Entry.
3467 --
3468 -- call description
3469 --
3470 -- No description or it is inherited.
3471 --
3472 -- call ADRs
3473 -- Bug 4922099
3474 --
3475 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3476 (NVL(l_actual_upg_option, 'N') = 'O') OR
3477 (NVL(l_enc_upg_option, 'N') = 'O')
3478 )
3479 THEN
3480 NULL;
3481 --
3482 --
3483
3484 --
3485 --
3486 END IF;
3487 --
3488 -- Bug 4922099
3489 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3490 (NVL(l_enc_upg_option, 'N') = 'O')
3491 ) AND
3492 (l_bflow_method_code = 'PRIOR_ENTRY')
3493 )
3494 THEN
3495 IF
3496 --
3497 1 = 1
3498 --
3499 THEN
3500 xla_accounting_err_pkg.build_message
3501 (p_appli_s_name => 'XLA'
3502 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3503 ,p_token_1 => 'LINE_NUMBER'
3504 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
3505 ,p_token_2 => 'LINE_TYPE_NAME'
3506 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
3507 l_component_type
3508 ,l_component_code
3509 ,l_component_type_code
3510 ,l_component_appl_id
3511 ,l_amb_context_code
3512 ,l_entity_code
3513 ,l_event_class_code
3514 )
3515 ,p_token_3 => 'OWNER'
3516 ,p_value_3 => xla_lookups_pkg.get_meaning(
3517 p_lookup_type => 'XLA_OWNER_TYPE'
3518 ,p_lookup_code => l_component_type_code
3519 )
3520 ,p_token_4 => 'PRODUCT_NAME'
3521 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3522 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3523 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3524 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3525 ,p_ae_header_id => NULL
3526 );
3527
3528 IF (C_LEVEL_ERROR>= g_log_level) THEN
3529 trace
3530 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3531 ,p_level => C_LEVEL_ERROR
3532 ,p_module => l_log_module);
3533 END IF;
3534 END IF;
3535 END IF;
3536 --
3537 --
3538 ------------------------------------------------------------------------------------------------
3539 -- 4219869 Business Flow
3540 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3541 -- Prior Entry. Currently, the following code is always generated.
3542 ------------------------------------------------------------------------------------------------
3543 -- No ValidateCurrentLine for business flow method of Prior Entry
3544
3545 ------------------------------------------------------------------------------------
3546 -- 4219869 Business Flow
3547 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3548 ------------------------------------------------------------------------------------
3549 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3550
3551 ----------------------------------------------------------------------------------
3552 -- 4219869 Business Flow
3553 -- Update journal entry status -- Need to generate this within IF <condition>
3554 ----------------------------------------------------------------------------------
3555 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3556 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3557 ,p_balance_type_code => l_balance_type_code
3558 );
3559
3560 -------------------------------------------------------------------------------------------
3561 -- 4262811 - Generate the Accrual Reversal lines
3562 -------------------------------------------------------------------------------------------
3563 BEGIN
3564 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3565 (g_array_event(p_event_id).array_value_num('header_index'));
3566 IF l_acc_rev_flag IS NULL THEN
3567 l_acc_rev_flag := 'N';
3568 END IF;
3569 EXCEPTION
3570 WHEN OTHERS THEN
3571 l_acc_rev_flag := 'N';
3572 END;
3573 --
3574 IF (l_acc_rev_flag = 'Y') THEN
3575
3576 -- 4645092 ------------------------------------------------------------------------------
3577 -- To allow MPA report to determine if it should generate report process
3578 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3579 ------------------------------------------------------------------------------------------
3580
3581 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3582 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3583
3584 --
3585 -- Update the line information that should be overwritten
3586 --
3587 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3588 p_header_num => 1);
3589 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3590
3591 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3592
3593 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3594 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3595 END IF;
3596
3597 --
3598 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3599 --
3600 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3601 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3602 ELSE
3603 ---------------------------------------------------------------------------------------------------
3604 -- 4262811a Switch Sign
3605 ---------------------------------------------------------------------------------------------------
3606 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3607 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3608 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3609 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3610 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3611 -- 5132302
3612 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3613 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3614
3615 END IF;
3616
3617 -- 4955764
3618 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3619 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3620
3621
3622 XLA_AE_LINES_PKG.ValidateCurrentLine;
3623 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3624
3625 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3626 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3627 ,p_balance_type_code => l_balance_type_code);
3628
3629 END IF;
3630
3631 -----------------------------------------------------------------------------------------
3632 -- 4262811 Multiperiod Accounting
3633 -----------------------------------------------------------------------------------------
3634 -- No MPA option is assigned.
3635
3636
3637 END IF;
3638 END IF;
3639 --
3640
3641 --
3642 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3643 trace
3644 (p_msg => 'END of AcctLineType_16'
3645 ,p_level => C_LEVEL_PROCEDURE
3646 ,p_module => l_log_module);
3647 END IF;
3648 --
3649 EXCEPTION
3650 WHEN xla_exceptions_pkg.application_exception THEN
3651 RAISE;
3652 WHEN OTHERS THEN
3653 xla_exceptions_pkg.raise_message
3654 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_16');
3655 END AcctLineType_16;
3656 --
3657
3658 ---------------------------------------
3659 --
3660 -- PRIVATE FUNCTION
3661 -- AcctLineType_17
3662 --
3663 ---------------------------------------
3664 PROCEDURE AcctLineType_17 (
3665 p_application_id IN NUMBER
3666 ,p_event_id IN NUMBER
3667 ,p_calculate_acctd_flag IN VARCHAR2
3668 ,p_calculate_g_l_flag IN VARCHAR2
3669 ,p_actual_flag IN OUT VARCHAR2
3670 ,p_balance_type_code OUT VARCHAR2
3671 ,p_gain_or_loss_ref OUT VARCHAR2
3672
3673 --Budget Account
3674 , p_source_9 IN NUMBER
3675 --Main Or Backing Code
3676 , p_source_13 IN VARCHAR2
3677 --Accounting Reversal Flag
3678 , p_source_15 IN VARCHAR2
3679 --Distribution Link Type
3680 , p_source_17 IN VARCHAR2
3681 --PO Distribution Identifier
3682 , p_source_19 IN NUMBER
3683 --PO Header Identifier
3684 , p_source_20 IN NUMBER
3685 --Applied To Application Identifier
3686 , p_source_21 IN NUMBER
3687 --Applied To Distribution Link Type
3688 , p_source_22 IN VARCHAR2
3689 --Applied To Entity Code
3690 , p_source_23 IN VARCHAR2
3691 --Applied To Distribution Identifier 1
3692 , p_source_24 IN NUMBER
3693 --Applied To Header Identifier 1
3694 , p_source_25 IN NUMBER
3695 --Entered Amount
3696 , p_source_26 IN NUMBER
3697 --Currency Code
3698 , p_source_27 IN VARCHAR2
3699 --Accounted Amount
3700 , p_source_28 IN NUMBER
3701 --PO Encumbrance Upgrade Option
3702 , p_source_29 IN VARCHAR2
3703 --JFMIP Reference
3704 , p_source_31 IN VARCHAR2
3705 --PO Upgrade Encumbrance Type Identifier
3706 , p_source_32 IN NUMBER
3707 --Allocated to Main Document Distribution Type
3708 , p_source_33 IN VARCHAR2
3709 --Allocated to Main Document Distribution Identifier
3710 , p_source_34 IN NUMBER
3711 )
3712 IS
3713
3714 l_component_type VARCHAR2(80);
3715 l_component_code VARCHAR2(30);
3716 l_component_type_code VARCHAR2(1);
3717 l_component_appl_id INTEGER;
3718 l_amb_context_code VARCHAR2(30);
3719 l_entity_code VARCHAR2(30);
3720 l_event_class_code VARCHAR2(30);
3721 l_ae_header_id NUMBER;
3722 l_event_type_code VARCHAR2(30);
3723 l_line_definition_code VARCHAR2(30);
3724 l_line_definition_owner_code VARCHAR2(1);
3725 --
3726 -- adr variables
3727 l_segment VARCHAR2(30);
3728 l_ccid NUMBER;
3729 l_adr_transaction_coa_id NUMBER;
3730 l_adr_accounting_coa_id NUMBER;
3731 l_adr_flexfield_segment_code VARCHAR2(30);
3732 l_adr_flex_value_set_id NUMBER;
3733 l_adr_value_type_code VARCHAR2(30);
3734 l_adr_value_combination_id NUMBER;
3735 l_adr_value_segment_code VARCHAR2(30);
3736
3737 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3738 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3739 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3740 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3741
3742 -- 4262811 Variables ------------------------------------------------------------------------------------------
3743 l_entered_amt_idx NUMBER;
3744 l_accted_amt_idx NUMBER;
3745 l_acc_rev_flag VARCHAR2(1);
3746 l_accrual_line_num NUMBER;
3747 l_tmp_amt NUMBER;
3748 l_acc_rev_natural_side_code VARCHAR2(1);
3749
3750 l_num_entries NUMBER;
3751 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3752 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3753 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3754 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3755 l_recog_line_1 NUMBER;
3756 l_recog_line_2 NUMBER;
3757
3758 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3759 l_bflow_applied_to_amt NUMBER; -- 5132302
3760 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3761
3762 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3763
3764 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3765 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3766
3767 ---------------------------------------------------------------------------------------------------------------
3768
3769
3770 --
3771 -- bulk performance
3772 --
3773 l_balance_type_code VARCHAR2(1);
3774 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3775 l_log_module VARCHAR2(240);
3776
3777 --
3778 -- Upgrade strategy
3779 --
3780 l_actual_upg_option VARCHAR2(1);
3781 l_enc_upg_option VARCHAR2(1);
3782
3783 --
3784 BEGIN
3785 --
3786 IF g_log_enabled THEN
3787 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_17';
3788 END IF;
3789 --
3790 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3791
3792 trace
3793 (p_msg => 'BEGIN of AcctLineType_17'
3794 ,p_level => C_LEVEL_PROCEDURE
3795 ,p_module => l_log_module);
3796
3797 END IF;
3798 --
3799 l_component_type := 'AMB_JLT';
3800 l_component_code := 'FV_BPA_RELIEVE_DR';
3801 l_component_type_code := 'S';
3802 l_component_appl_id := 201;
3803 l_amb_context_code := 'DEFAULT';
3804 l_entity_code := 'PURCHASE_ORDER';
3805 l_event_class_code := 'PO_PA';
3806 l_event_type_code := 'PO_PA_ALL';
3807 l_line_definition_owner_code := 'S';
3808 l_line_definition_code := 'FV_PO_ALL';
3809 --
3810 l_balance_type_code := 'A';
3811 l_segment := NULL;
3812 l_ccid := NULL;
3813 l_adr_transaction_coa_id := NULL;
3814 l_adr_accounting_coa_id := NULL;
3815 l_adr_flexfield_segment_code := NULL;
3816 l_adr_flex_value_set_id := NULL;
3817 l_adr_value_type_code := NULL;
3818 l_adr_value_combination_id := NULL;
3819 l_adr_value_segment_code := NULL;
3820
3821 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
3822 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
3823 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
3824 l_budgetary_control_flag := 'Y';
3825
3826 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3827 l_bflow_applied_to_amt := NULL; -- 5132302
3828 l_entered_amt_idx := NULL; -- 4262811
3829 l_accted_amt_idx := NULL; -- 4262811
3830 l_acc_rev_flag := NULL; -- 4262811
3831 l_accrual_line_num := NULL; -- 4262811
3832 l_tmp_amt := NULL; -- 4262811
3833 --
3834
3835 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3836 l_balance_type_code <> 'B' THEN
3837 IF NVL(
3838 xla_ae_sources_pkg.GetSystemSourceChar(
3839 p_source_code => 'XLA_EVENT_TYPE_CODE'
3840 , p_source_type_code => 'Y'
3841 , p_source_application_id => 602
3842 ),'
3843 ') = 'PO_PA_RESERVED' AND
3844 NVL(p_source_13,'
3845 ') = 'B_PA'
3846 THEN
3847
3848 --
3849 XLA_AE_LINES_PKG.SetNewLine;
3850
3851 p_balance_type_code := l_balance_type_code;
3852 -- set the flag so later we will know whether the gain loss line needs to be created
3853
3854 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3855 p_actual_flag :='A';
3856 END IF;
3857
3858 --
3859 -- bulk performance
3860 --
3861 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3862 p_header_num => 0); -- 4262811
3863 --
3864 -- set accounting line options
3865 --
3866 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3867 p_natural_side_code => 'D'
3868 , p_gain_or_loss_flag => 'N'
3869 , p_gl_transfer_mode_code => 'S'
3870 , p_acct_entry_type_code => 'A'
3871 , p_switch_side_flag => 'N'
3872 , p_merge_duplicate_code => 'N'
3873 );
3874 --
3875 l_acc_rev_natural_side_code := 'C'; -- 4262811
3876 --
3877 --
3878 -- set accounting line type info
3879 --
3880 xla_ae_lines_pkg.SetAcctLineType
3881 (p_component_type => l_component_type
3882 ,p_event_type_code => l_event_type_code
3883 ,p_line_definition_owner_code => l_line_definition_owner_code
3884 ,p_line_definition_code => l_line_definition_code
3885 ,p_accounting_line_code => l_component_code
3886 ,p_accounting_line_type_code => l_component_type_code
3887 ,p_accounting_line_appl_id => l_component_appl_id
3888 ,p_amb_context_code => l_amb_context_code
3889 ,p_entity_code => l_entity_code
3890 ,p_event_class_code => l_event_class_code);
3891 --
3892 -- set accounting class
3893 --
3894 xla_ae_lines_pkg.SetAcctClass(
3895 p_accounting_class_code => 'PURCHASE_ORDER'
3896 , p_ae_header_id => l_ae_header_id
3897 );
3898
3899 --
3900 -- set rounding class
3901 --
3902 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3903 'PURCHASE_ORDER';
3904
3905 --
3906 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3907 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3908 --
3909 -- bulk performance
3910 --
3911 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3912
3913 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3914 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3915
3916 -- 4955764
3917 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3918 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3919
3920 -- 4458381 Public Sector Enh
3921
3922 --
3923 -- set accounting attributes for the line type
3924 --
3925 l_entered_amt_idx := 23;
3926 l_accted_amt_idx := 25;
3927 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3928 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
3929 l_rec_acct_attrs.array_char_value(1) := p_source_15;
3930 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
3931 l_rec_acct_attrs.array_num_value(2) :=
3932 xla_ae_sources_pkg.GetSystemSourceNum(
3933 p_source_code => 'XLA_EVENT_APPL_ID'
3934 , p_source_type_code => 'Y'
3935 , p_source_application_id => 602
3936 );
3937 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
3938 l_rec_acct_attrs.array_char_value(3) := p_source_33;
3939 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
3940 l_rec_acct_attrs.array_char_value(4) :=
3941 xla_ae_sources_pkg.GetSystemSourceChar(
3942 p_source_code => 'XLA_ENTITY_CODE'
3943 , p_source_type_code => 'Y'
3944 , p_source_application_id => 602
3945 );
3946 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
3947 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
3948 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
3949 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
3950 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
3951 l_rec_acct_attrs.array_num_value(7) := p_source_21;
3952 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
3953 l_rec_acct_attrs.array_char_value(8) := p_source_22;
3954 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
3955 l_rec_acct_attrs.array_char_value(9) := p_source_23;
3956 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
3957 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
3958 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
3959 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
3960 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
3961 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
3962 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
3963 l_rec_acct_attrs.array_char_value(13) := p_source_17;
3964 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
3965 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
3966 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
3967 l_rec_acct_attrs.array_num_value(15) := p_source_26;
3968 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
3969 l_rec_acct_attrs.array_char_value(16) := p_source_27;
3970 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
3971 l_rec_acct_attrs.array_num_value(17) := p_source_28;
3972 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
3973 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
3974 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
3975 l_rec_acct_attrs.array_num_value(19) := p_source_26;
3976 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
3977 l_rec_acct_attrs.array_char_value(20) := p_source_27;
3978 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
3979 l_rec_acct_attrs.array_num_value(21) := p_source_28;
3980 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
3981 l_rec_acct_attrs.array_char_value(22) := p_source_29;
3982 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
3983 l_rec_acct_attrs.array_num_value(23) := p_source_26;
3984 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
3985 l_rec_acct_attrs.array_char_value(24) := p_source_27;
3986 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
3987 l_rec_acct_attrs.array_num_value(25) := p_source_28;
3988 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
3992 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
3989 l_rec_acct_attrs.array_char_value(26) := p_source_31;
3990 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
3991 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
3993 l_rec_acct_attrs.array_char_value(28) := p_source_22;
3994 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
3995 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
3996 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
3997 l_rec_acct_attrs.array_num_value(30) := p_source_32;
3998 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
3999 l_rec_acct_attrs.array_num_value(31) := p_source_32;
4000
4001 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4002 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4003
4004 ---------------------------------------------------------------------------------------------------------------
4005 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4006 ---------------------------------------------------------------------------------------------------------------
4007 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4008
4009 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4010 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4011
4012 IF xla_accounting_cache_pkg.GetValueChar
4013 (p_source_code => 'LEDGER_CATEGORY_CODE'
4014 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4015 AND l_bflow_method_code = 'PRIOR_ENTRY'
4016 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4017 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4018 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4019 )
4020 THEN
4021 xla_ae_lines_pkg.BflowUpgEntry
4022 (p_business_method_code => l_bflow_method_code
4023 ,p_business_class_code => l_bflow_class_code
4024 ,p_balance_type => l_balance_type_code);
4025 ELSE
4026 NULL;
4027 XLA_AE_LINES_PKG.business_flow_validation(
4028 p_business_method_code => l_bflow_method_code
4029 ,p_business_class_code => l_bflow_class_code
4030 ,p_inherit_description_flag => l_inherit_desc_flag);
4031 END IF;
4032
4033 --
4034 -- call analytical criteria
4035 --
4036 -- Inherited Analytical Criteria for business flow method of Prior Entry.
4037 --
4038 -- call description
4039 --
4040 -- No description or it is inherited.
4041 --
4042 -- call ADRs
4043 -- Bug 4922099
4044 --
4045 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4046 (NVL(l_actual_upg_option, 'N') = 'O') OR
4047 (NVL(l_enc_upg_option, 'N') = 'O')
4048 )
4049 THEN
4050 NULL;
4051 --
4052 --
4053
4054 --
4055 --
4056 END IF;
4057 --
4058 -- Bug 4922099
4059 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4060 (NVL(l_enc_upg_option, 'N') = 'O')
4061 ) AND
4062 (l_bflow_method_code = 'PRIOR_ENTRY')
4063 )
4064 THEN
4065 IF
4066 --
4067 1 = 1
4068 --
4069 THEN
4070 xla_accounting_err_pkg.build_message
4071 (p_appli_s_name => 'XLA'
4072 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4073 ,p_token_1 => 'LINE_NUMBER'
4074 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4075 ,p_token_2 => 'LINE_TYPE_NAME'
4076 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4077 l_component_type
4078 ,l_component_code
4079 ,l_component_type_code
4080 ,l_component_appl_id
4081 ,l_amb_context_code
4082 ,l_entity_code
4083 ,l_event_class_code
4084 )
4085 ,p_token_3 => 'OWNER'
4086 ,p_value_3 => xla_lookups_pkg.get_meaning(
4087 p_lookup_type => 'XLA_OWNER_TYPE'
4088 ,p_lookup_code => l_component_type_code
4089 )
4090 ,p_token_4 => 'PRODUCT_NAME'
4091 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4095 ,p_ae_header_id => NULL
4092 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4093 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4094 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4096 );
4097
4098 IF (C_LEVEL_ERROR>= g_log_level) THEN
4099 trace
4100 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4101 ,p_level => C_LEVEL_ERROR
4102 ,p_module => l_log_module);
4103 END IF;
4104 END IF;
4105 END IF;
4106 --
4107 --
4108 ------------------------------------------------------------------------------------------------
4109 -- 4219869 Business Flow
4110 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4111 -- Prior Entry. Currently, the following code is always generated.
4112 ------------------------------------------------------------------------------------------------
4113 -- No ValidateCurrentLine for business flow method of Prior Entry
4114
4115 ------------------------------------------------------------------------------------
4116 -- 4219869 Business Flow
4117 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4118 ------------------------------------------------------------------------------------
4119 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4120
4121 ----------------------------------------------------------------------------------
4122 -- 4219869 Business Flow
4123 -- Update journal entry status -- Need to generate this within IF <condition>
4124 ----------------------------------------------------------------------------------
4125 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4126 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4127 ,p_balance_type_code => l_balance_type_code
4128 );
4129
4130 -------------------------------------------------------------------------------------------
4131 -- 4262811 - Generate the Accrual Reversal lines
4132 -------------------------------------------------------------------------------------------
4133 BEGIN
4134 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4135 (g_array_event(p_event_id).array_value_num('header_index'));
4136 IF l_acc_rev_flag IS NULL THEN
4137 l_acc_rev_flag := 'N';
4138 END IF;
4139 EXCEPTION
4140 WHEN OTHERS THEN
4141 l_acc_rev_flag := 'N';
4142 END;
4143 --
4144 IF (l_acc_rev_flag = 'Y') THEN
4145
4146 -- 4645092 ------------------------------------------------------------------------------
4147 -- To allow MPA report to determine if it should generate report process
4148 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4149 ------------------------------------------------------------------------------------------
4150
4151 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4152 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4153
4154 --
4155 -- Update the line information that should be overwritten
4156 --
4157 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4158 p_header_num => 1);
4159 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4160
4161 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4162
4163 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4164 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4165 END IF;
4166
4167 --
4168 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4169 --
4170 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4171 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4172 ELSE
4173 ---------------------------------------------------------------------------------------------------
4174 -- 4262811a Switch Sign
4175 ---------------------------------------------------------------------------------------------------
4176 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4177 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4178 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4179 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4180 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4181 -- 5132302
4182 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4183 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4184
4185 END IF;
4186
4187 -- 4955764
4188 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4189 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4190
4191
4192 XLA_AE_LINES_PKG.ValidateCurrentLine;
4193 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4194
4195 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4196 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4197 ,p_balance_type_code => l_balance_type_code);
4198
4199 END IF;
4200
4201 -----------------------------------------------------------------------------------------
4202 -- 4262811 Multiperiod Accounting
4203 -----------------------------------------------------------------------------------------
4204 -- No MPA option is assigned.
4205
4206
4207 END IF;
4208 END IF;
4209 --
4210
4211 --
4212 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4213 trace
4214 (p_msg => 'END of AcctLineType_17'
4215 ,p_level => C_LEVEL_PROCEDURE
4216 ,p_module => l_log_module);
4217 END IF;
4218 --
4219 EXCEPTION
4220 WHEN xla_exceptions_pkg.application_exception THEN
4221 RAISE;
4222 WHEN OTHERS THEN
4223 xla_exceptions_pkg.raise_message
4224 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_17');
4225 END AcctLineType_17;
4226 --
4227
4228 ---------------------------------------
4229 --
4230 -- PRIVATE FUNCTION
4231 -- AcctLineType_18
4232 --
4233 ---------------------------------------
4234 PROCEDURE AcctLineType_18 (
4235 p_application_id IN NUMBER
4236 ,p_event_id IN NUMBER
4237 ,p_calculate_acctd_flag IN VARCHAR2
4238 ,p_calculate_g_l_flag IN VARCHAR2
4239 ,p_actual_flag IN OUT VARCHAR2
4240 ,p_balance_type_code OUT VARCHAR2
4241 ,p_gain_or_loss_ref OUT VARCHAR2
4242
4243 --Journal entry Line Description
4244 , p_source_3 IN VARCHAR2
4245 --Federal Fund Category
4246 , p_source_7 IN VARCHAR2
4247 --Budget Account
4248 , p_source_9 IN NUMBER
4249 --Federal Prior Year Flag
4250 , p_source_10 IN VARCHAR2
4251 --Main Or Backing Code
4252 , p_source_13 IN VARCHAR2
4253 --PO Distribution Type
4254 , p_source_14 IN VARCHAR2
4255 --Accounting Reversal Flag
4256 , p_source_15 IN VARCHAR2
4257 --Distribution Link Type
4258 , p_source_17 IN VARCHAR2
4259 --PO Distribution Identifier
4260 , p_source_19 IN NUMBER
4261 --PO Header Identifier
4262 , p_source_20 IN NUMBER
4263 --Applied To Application Identifier
4264 , p_source_21 IN NUMBER
4265 --Applied To Distribution Link Type
4266 , p_source_22 IN VARCHAR2
4267 --Applied To Entity Code
4268 , p_source_23 IN VARCHAR2
4269 --Applied To Distribution Identifier 1
4270 , p_source_24 IN NUMBER
4271 --Applied To Header Identifier 1
4272 , p_source_25 IN NUMBER
4273 --Entered Amount
4274 , p_source_26 IN NUMBER
4275 --Currency Code
4276 , p_source_27 IN VARCHAR2
4277 --Accounted Amount
4278 , p_source_28 IN NUMBER
4279 --PO Encumbrance Upgrade Option
4280 , p_source_29 IN VARCHAR2
4281 --JFMIP Reference
4282 , p_source_31 IN VARCHAR2
4283 --PO Upgrade Encumbrance Type Identifier
4284 , p_source_32 IN NUMBER
4285 --Currency Conversion Date
4286 , p_source_35 IN DATE
4287 --Currency Conversion Rate
4288 , p_source_36 IN NUMBER
4289 --Currency Conversion Type
4290 , p_source_37 IN VARCHAR2
4291 )
4292 IS
4293
4294 l_component_type VARCHAR2(80);
4295 l_component_code VARCHAR2(30);
4296 l_component_type_code VARCHAR2(1);
4297 l_component_appl_id INTEGER;
4298 l_amb_context_code VARCHAR2(30);
4299 l_entity_code VARCHAR2(30);
4300 l_event_class_code VARCHAR2(30);
4301 l_ae_header_id NUMBER;
4302 l_event_type_code VARCHAR2(30);
4303 l_line_definition_code VARCHAR2(30);
4304 l_line_definition_owner_code VARCHAR2(1);
4305 --
4306 -- adr variables
4307 l_segment VARCHAR2(30);
4308 l_ccid NUMBER;
4309 l_adr_transaction_coa_id NUMBER;
4310 l_adr_accounting_coa_id NUMBER;
4311 l_adr_flexfield_segment_code VARCHAR2(30);
4312 l_adr_flex_value_set_id NUMBER;
4313 l_adr_value_type_code VARCHAR2(30);
4314 l_adr_value_combination_id NUMBER;
4315 l_adr_value_segment_code VARCHAR2(30);
4316
4317 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4318 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4319 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4320 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4321
4322 -- 4262811 Variables ------------------------------------------------------------------------------------------
4323 l_entered_amt_idx NUMBER;
4324 l_accted_amt_idx NUMBER;
4325 l_acc_rev_flag VARCHAR2(1);
4326 l_accrual_line_num NUMBER;
4327 l_tmp_amt NUMBER;
4328 l_acc_rev_natural_side_code VARCHAR2(1);
4329
4330 l_num_entries NUMBER;
4331 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4332 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4333 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4334 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4335 l_recog_line_1 NUMBER;
4336 l_recog_line_2 NUMBER;
4337
4338 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4339 l_bflow_applied_to_amt NUMBER; -- 5132302
4340 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4341
4342 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4343
4344 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4345 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4346
4347 ---------------------------------------------------------------------------------------------------------------
4348
4349
4350 --
4351 -- bulk performance
4352 --
4353 l_balance_type_code VARCHAR2(1);
4354 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4355 l_log_module VARCHAR2(240);
4356
4357 --
4358 -- Upgrade strategy
4359 --
4360 l_actual_upg_option VARCHAR2(1);
4361 l_enc_upg_option VARCHAR2(1);
4362
4363 --
4364 BEGIN
4365 --
4366 IF g_log_enabled THEN
4367 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_18';
4368 END IF;
4369 --
4370 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4371
4372 trace
4373 (p_msg => 'BEGIN of AcctLineType_18'
4374 ,p_level => C_LEVEL_PROCEDURE
4375 ,p_module => l_log_module);
4376
4377 END IF;
4378 --
4379 l_component_type := 'AMB_JLT';
4380 l_component_code := 'FV_BPA_RESERVE_CR';
4381 l_component_type_code := 'S';
4382 l_component_appl_id := 201;
4383 l_amb_context_code := 'DEFAULT';
4384 l_entity_code := 'PURCHASE_ORDER';
4385 l_event_class_code := 'PO_PA';
4386 l_event_type_code := 'PO_PA_ALL';
4387 l_line_definition_owner_code := 'S';
4388 l_line_definition_code := 'FV_PO_ALL';
4389 --
4390 l_balance_type_code := 'A';
4391 l_segment := NULL;
4392 l_ccid := NULL;
4393 l_adr_transaction_coa_id := NULL;
4394 l_adr_accounting_coa_id := NULL;
4395 l_adr_flexfield_segment_code := NULL;
4396 l_adr_flex_value_set_id := NULL;
4397 l_adr_value_type_code := NULL;
4398 l_adr_value_combination_id := NULL;
4399 l_adr_value_segment_code := NULL;
4400
4401 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
4402 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
4403 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
4404 l_budgetary_control_flag := 'Y';
4405
4406 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4407 l_bflow_applied_to_amt := NULL; -- 5132302
4408 l_entered_amt_idx := NULL; -- 4262811
4409 l_accted_amt_idx := NULL; -- 4262811
4410 l_acc_rev_flag := NULL; -- 4262811
4411 l_accrual_line_num := NULL; -- 4262811
4412 l_tmp_amt := NULL; -- 4262811
4413 --
4414
4415 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4416 l_balance_type_code <> 'B' THEN
4417 IF NVL(
4418 xla_ae_sources_pkg.GetSystemSourceChar(
4419 p_source_code => 'XLA_EVENT_TYPE_CODE'
4420 , p_source_type_code => 'Y'
4421 , p_source_application_id => 602
4422 ),'
4423 ') = 'PO_PA_RESERVED' AND
4424 NVL(p_source_13,'
4425 ') = 'M' AND
4426 NVL(p_source_14,'
4427 ') = 'AGREEMENT' AND
4428 NVL(p_source_10,'
4429 ') = 'N'
4430 THEN
4431
4432 --
4433 XLA_AE_LINES_PKG.SetNewLine;
4434
4435 p_balance_type_code := l_balance_type_code;
4436 -- set the flag so later we will know whether the gain loss line needs to be created
4437
4438 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4439 p_actual_flag :='A';
4440 END IF;
4441
4442 --
4443 -- bulk performance
4444 --
4445 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4446 p_header_num => 0); -- 4262811
4447 --
4448 -- set accounting line options
4449 --
4450 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4454 , p_acct_entry_type_code => 'A'
4451 p_natural_side_code => 'C'
4452 , p_gain_or_loss_flag => 'N'
4453 , p_gl_transfer_mode_code => 'S'
4455 , p_switch_side_flag => 'N'
4456 , p_merge_duplicate_code => 'N'
4457 );
4458 --
4459 l_acc_rev_natural_side_code := 'D'; -- 4262811
4460 --
4461 --
4462 -- set accounting line type info
4463 --
4464 xla_ae_lines_pkg.SetAcctLineType
4465 (p_component_type => l_component_type
4466 ,p_event_type_code => l_event_type_code
4467 ,p_line_definition_owner_code => l_line_definition_owner_code
4468 ,p_line_definition_code => l_line_definition_code
4469 ,p_accounting_line_code => l_component_code
4470 ,p_accounting_line_type_code => l_component_type_code
4471 ,p_accounting_line_appl_id => l_component_appl_id
4472 ,p_amb_context_code => l_amb_context_code
4473 ,p_entity_code => l_entity_code
4474 ,p_event_class_code => l_event_class_code);
4475 --
4476 -- set accounting class
4477 --
4478 xla_ae_lines_pkg.SetAcctClass(
4479 p_accounting_class_code => 'PURCHASE_ORDER'
4480 , p_ae_header_id => l_ae_header_id
4481 );
4482
4483 --
4484 -- set rounding class
4485 --
4486 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4487 'PURCHASE_ORDER';
4488
4489 --
4490 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4491 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4492 --
4493 -- bulk performance
4494 --
4495 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4496
4497 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4498 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4499
4500 -- 4955764
4501 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4502 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4503
4504 -- 4458381 Public Sector Enh
4505
4506 --
4507 -- set accounting attributes for the line type
4508 --
4509 l_entered_amt_idx := 23;
4510 l_accted_amt_idx := 28;
4511 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4512 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
4513 l_rec_acct_attrs.array_char_value(1) := p_source_15;
4514 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
4515 l_rec_acct_attrs.array_num_value(2) :=
4516 xla_ae_sources_pkg.GetSystemSourceNum(
4517 p_source_code => 'XLA_EVENT_APPL_ID'
4518 , p_source_type_code => 'Y'
4519 , p_source_application_id => 602
4520 );
4521 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
4522 l_rec_acct_attrs.array_char_value(3) := p_source_17;
4523 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
4524 l_rec_acct_attrs.array_char_value(4) :=
4525 xla_ae_sources_pkg.GetSystemSourceChar(
4526 p_source_code => 'XLA_ENTITY_CODE'
4527 , p_source_type_code => 'Y'
4528 , p_source_application_id => 602
4529 );
4530 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
4531 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
4532 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
4533 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
4534 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
4535 l_rec_acct_attrs.array_num_value(7) := p_source_21;
4536 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
4537 l_rec_acct_attrs.array_char_value(8) := p_source_22;
4538 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
4539 l_rec_acct_attrs.array_char_value(9) := p_source_23;
4540 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
4541 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
4542 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
4543 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
4544 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
4545 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
4546 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
4547 l_rec_acct_attrs.array_char_value(13) := p_source_17;
4548 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
4549 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
4550 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
4551 l_rec_acct_attrs.array_num_value(15) := p_source_26;
4552 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
4553 l_rec_acct_attrs.array_char_value(16) := p_source_27;
4554 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
4555 l_rec_acct_attrs.array_num_value(17) := p_source_28;
4556 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
4557 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
4558 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
4559 l_rec_acct_attrs.array_num_value(19) := p_source_26;
4563 l_rec_acct_attrs.array_num_value(21) := p_source_28;
4560 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
4561 l_rec_acct_attrs.array_char_value(20) := p_source_27;
4562 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
4564 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
4565 l_rec_acct_attrs.array_char_value(22) := p_source_29;
4566 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
4567 l_rec_acct_attrs.array_num_value(23) := p_source_26;
4568 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
4569 l_rec_acct_attrs.array_char_value(24) := p_source_27;
4570 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
4571 l_rec_acct_attrs.array_date_value(25) := p_source_35;
4572 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
4573 l_rec_acct_attrs.array_num_value(26) := p_source_36;
4574 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
4575 l_rec_acct_attrs.array_char_value(27) := p_source_37;
4576 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
4577 l_rec_acct_attrs.array_num_value(28) := p_source_28;
4578 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
4579 l_rec_acct_attrs.array_char_value(29) := p_source_31;
4580 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
4581 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
4582 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
4583 l_rec_acct_attrs.array_char_value(31) := p_source_22;
4584 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
4585 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
4586 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
4587 l_rec_acct_attrs.array_num_value(33) := p_source_32;
4588 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
4589 l_rec_acct_attrs.array_num_value(34) := p_source_32;
4590
4591 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4592 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4593
4594 ---------------------------------------------------------------------------------------------------------------
4595 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4596 ---------------------------------------------------------------------------------------------------------------
4597 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4598
4599 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4600 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4601
4602 IF xla_accounting_cache_pkg.GetValueChar
4603 (p_source_code => 'LEDGER_CATEGORY_CODE'
4604 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4605 AND l_bflow_method_code = 'PRIOR_ENTRY'
4606 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4607 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4608 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4609 )
4610 THEN
4611 xla_ae_lines_pkg.BflowUpgEntry
4612 (p_business_method_code => l_bflow_method_code
4613 ,p_business_class_code => l_bflow_class_code
4614 ,p_balance_type => l_balance_type_code);
4615 ELSE
4616 NULL;
4617 -- No business flow processing for business flow method of NONE.
4618 END IF;
4619
4620 --
4621 -- call analytical criteria
4622 --
4623
4624 --
4625 -- call description
4626 --
4627
4628 xla_ae_lines_pkg.SetLineDescription(
4629 p_ae_header_id => l_ae_header_id
4630 ,p_description => Description_2 (
4631 p_application_id => p_application_id
4632 , p_ae_header_id => l_ae_header_id
4633 , p_source_3 => p_source_3
4634 )
4635 );
4636
4637
4638 --
4639 -- call ADRs
4640 -- Bug 4922099
4641 --
4642 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4643 (NVL(l_actual_upg_option, 'N') = 'O') OR
4644 (NVL(l_enc_upg_option, 'N') = 'O')
4645 )
4646 THEN
4647 NULL;
4648 --
4649 --
4650
4651 l_ccid := AcctDerRule_9(
4652 p_application_id => p_application_id
4653 , p_ae_header_id => l_ae_header_id
4654 , p_source_9 => p_source_9
4655 , x_transaction_coa_id => l_adr_transaction_coa_id
4656 , x_accounting_coa_id => l_adr_accounting_coa_id
4657 , x_value_type_code => l_adr_value_type_code
4658 , p_side => 'NA'
4659 );
4660
4661 xla_ae_lines_pkg.set_ccid(
4662 p_code_combination_id => l_ccid
4663 , p_value_type_code => l_adr_value_type_code
4664 , p_transaction_coa_id => l_adr_transaction_coa_id
4665 , p_accounting_coa_id => l_adr_accounting_coa_id
4666 , p_adr_code => 'FV_ACCOUNT_RULE'
4667 , p_adr_type_code => 'S'
4668 , p_component_type => l_component_type
4669 , p_component_code => l_component_code
4670 , p_component_type_code => l_component_type_code
4671 , p_component_appl_id => l_component_appl_id
4672 , p_amb_context_code => l_amb_context_code
4673 , p_side => 'NA'
4674 );
4675
4676
4677 l_segment := AcctDerRule_6(
4678 p_application_id => p_application_id
4679 , p_ae_header_id => l_ae_header_id
4680 , p_source_7 => p_source_7
4681 , x_transaction_coa_id => l_adr_transaction_coa_id
4682 , x_accounting_coa_id => l_adr_accounting_coa_id
4683 , x_flexfield_segment_code => l_adr_flexfield_segment_code
4684 , x_flex_value_set_id => l_adr_flex_value_set_id
4685 , x_value_type_code => l_adr_value_type_code
4686 , x_value_combination_id => l_adr_value_combination_id
4687 , x_value_segment_code => l_adr_value_segment_code
4688 , p_side => 'NA'
4689 , p_override_seg_flag => 'Y'
4690 );
4691
4692 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
4693
4694 xla_ae_lines_pkg.set_segment(
4695 p_to_segment_code => 'GL_ACCOUNT'
4696 , p_segment_value => l_segment
4697 , p_from_segment_code => l_adr_value_segment_code
4698 , p_from_combination_id => l_adr_value_combination_id
4699 , p_value_type_code => l_adr_value_type_code
4700 , p_transaction_coa_id => l_adr_transaction_coa_id
4701 , p_accounting_coa_id => l_adr_accounting_coa_id
4702 , p_flexfield_segment_code => l_adr_flexfield_segment_code
4703 , p_flex_value_set_id => l_adr_flex_value_set_id
4704 , p_adr_code => 'FV_47X002_REQUISITION'
4705 , p_adr_type_code => 'S'
4706 , p_component_type => l_component_type
4707 , p_component_code => l_component_code
4708 , p_component_type_code => l_component_type_code
4709 , p_component_appl_id => l_component_appl_id
4710 , p_amb_context_code => l_amb_context_code
4711 , p_entity_code => 'PURCHASE_ORDER'
4712 , p_event_class_code => 'PO_PA'
4713 , p_side => 'NA'
4714 );
4715
4716 END IF;
4717
4718 --
4719 --
4720 END IF;
4721 --
4722 -- Bug 4922099
4723 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4724 (NVL(l_enc_upg_option, 'N') = 'O')
4725 ) AND
4726 (l_bflow_method_code = 'PRIOR_ENTRY')
4727 )
4728 THEN
4729 IF
4730 --
4731 1 = 2
4732 --
4733 THEN
4734 xla_accounting_err_pkg.build_message
4735 (p_appli_s_name => 'XLA'
4736 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4737 ,p_token_1 => 'LINE_NUMBER'
4738 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4739 ,p_token_2 => 'LINE_TYPE_NAME'
4740 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4741 l_component_type
4742 ,l_component_code
4743 ,l_component_type_code
4744 ,l_component_appl_id
4745 ,l_amb_context_code
4746 ,l_entity_code
4747 ,l_event_class_code
4748 )
4749 ,p_token_3 => 'OWNER'
4750 ,p_value_3 => xla_lookups_pkg.get_meaning(
4751 p_lookup_type => 'XLA_OWNER_TYPE'
4752 ,p_lookup_code => l_component_type_code
4753 )
4754 ,p_token_4 => 'PRODUCT_NAME'
4755 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4756 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4757 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4758 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4759 ,p_ae_header_id => NULL
4760 );
4761
4762 IF (C_LEVEL_ERROR>= g_log_level) THEN
4763 trace
4764 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4765 ,p_level => C_LEVEL_ERROR
4766 ,p_module => l_log_module);
4767 END IF;
4768 END IF;
4769 END IF;
4770 --
4771 --
4772 ------------------------------------------------------------------------------------------------
4773 -- 4219869 Business Flow
4774 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4775 -- Prior Entry. Currently, the following code is always generated.
4776 ------------------------------------------------------------------------------------------------
4777 XLA_AE_LINES_PKG.ValidateCurrentLine;
4778
4779 ------------------------------------------------------------------------------------
4780 -- 4219869 Business Flow
4781 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4782 ------------------------------------------------------------------------------------
4783 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4784
4785 ----------------------------------------------------------------------------------
4786 -- 4219869 Business Flow
4787 -- Update journal entry status -- Need to generate this within IF <condition>
4788 ----------------------------------------------------------------------------------
4789 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4790 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4791 ,p_balance_type_code => l_balance_type_code
4792 );
4793
4794 -------------------------------------------------------------------------------------------
4795 -- 4262811 - Generate the Accrual Reversal lines
4796 -------------------------------------------------------------------------------------------
4797 BEGIN
4798 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4799 (g_array_event(p_event_id).array_value_num('header_index'));
4800 IF l_acc_rev_flag IS NULL THEN
4801 l_acc_rev_flag := 'N';
4802 END IF;
4803 EXCEPTION
4804 WHEN OTHERS THEN
4805 l_acc_rev_flag := 'N';
4806 END;
4807 --
4808 IF (l_acc_rev_flag = 'Y') THEN
4809
4810 -- 4645092 ------------------------------------------------------------------------------
4811 -- To allow MPA report to determine if it should generate report process
4812 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4813 ------------------------------------------------------------------------------------------
4814
4815 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4816 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4817
4818 --
4819 -- Update the line information that should be overwritten
4820 --
4821 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4822 p_header_num => 1);
4823 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4824
4825 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4826
4827 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4828 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4829 END IF;
4830
4831 --
4832 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4833 --
4834 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4835 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4836 ELSE
4837 ---------------------------------------------------------------------------------------------------
4838 -- 4262811a Switch Sign
4839 ---------------------------------------------------------------------------------------------------
4840 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4841 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4842 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4843 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4844 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4845 -- 5132302
4846 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4847 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4848
4849 END IF;
4850
4851 -- 4955764
4852 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4853 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4854
4855
4856 XLA_AE_LINES_PKG.ValidateCurrentLine;
4857 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4858
4859 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4860 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4861 ,p_balance_type_code => l_balance_type_code);
4862
4863 END IF;
4864
4865 -----------------------------------------------------------------------------------------
4866 -- 4262811 Multiperiod Accounting
4867 -----------------------------------------------------------------------------------------
4868 -- No MPA option is assigned.
4869
4870
4871 END IF;
4872 END IF;
4873 --
4874
4875 --
4876 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4877 trace
4878 (p_msg => 'END of AcctLineType_18'
4879 ,p_level => C_LEVEL_PROCEDURE
4880 ,p_module => l_log_module);
4881 END IF;
4882 --
4883 EXCEPTION
4884 WHEN xla_exceptions_pkg.application_exception THEN
4885 RAISE;
4886 WHEN OTHERS THEN
4887 xla_exceptions_pkg.raise_message
4888 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_18');
4889 END AcctLineType_18;
4890 --
4891
4892 ---------------------------------------
4893 --
4894 -- PRIVATE FUNCTION
4895 -- AcctLineType_19
4896 --
4897 ---------------------------------------
4898 PROCEDURE AcctLineType_19 (
4899 p_application_id IN NUMBER
4900 ,p_event_id IN NUMBER
4901 ,p_calculate_acctd_flag IN VARCHAR2
4902 ,p_calculate_g_l_flag IN VARCHAR2
4903 ,p_actual_flag IN OUT VARCHAR2
4904 ,p_balance_type_code OUT VARCHAR2
4905 ,p_gain_or_loss_ref OUT VARCHAR2
4906
4907 --Journal entry Line Description
4908 , p_source_3 IN VARCHAR2
4909 --Federal Fund Category
4910 , p_source_7 IN VARCHAR2
4911 --Federal Fund Expired Status
4912 , p_source_8 IN VARCHAR2
4913 --Budget Account
4914 , p_source_9 IN NUMBER
4915 --Federal Prior Year Flag
4916 , p_source_10 IN VARCHAR2
4917 --Main Or Backing Code
4918 , p_source_13 IN VARCHAR2
4919 --PO Distribution Type
4920 , p_source_14 IN VARCHAR2
4921 --Accounting Reversal Flag
4922 , p_source_15 IN VARCHAR2
4923 --Distribution Link Type
4924 , p_source_17 IN VARCHAR2
4925 --PO Distribution Identifier
4926 , p_source_19 IN NUMBER
4927 --PO Header Identifier
4928 , p_source_20 IN NUMBER
4929 --Applied To Application Identifier
4930 , p_source_21 IN NUMBER
4931 --Applied To Distribution Link Type
4932 , p_source_22 IN VARCHAR2
4933 --Applied To Entity Code
4934 , p_source_23 IN VARCHAR2
4935 --Applied To Distribution Identifier 1
4936 , p_source_24 IN NUMBER
4937 --Applied To Header Identifier 1
4938 , p_source_25 IN NUMBER
4939 --Entered Amount
4940 , p_source_26 IN NUMBER
4941 --Currency Code
4942 , p_source_27 IN VARCHAR2
4943 --Accounted Amount
4944 , p_source_28 IN NUMBER
4945 --PO Encumbrance Upgrade Option
4946 , p_source_29 IN VARCHAR2
4947 --JFMIP Reference
4948 , p_source_31 IN VARCHAR2
4949 --PO Upgrade Encumbrance Type Identifier
4950 , p_source_32 IN NUMBER
4951 --Currency Conversion Date
4952 , p_source_35 IN DATE
4953 --Currency Conversion Rate
4954 , p_source_36 IN NUMBER
4955 --Currency Conversion Type
4956 , p_source_37 IN VARCHAR2
4957 )
4958 IS
4959
4960 l_component_type VARCHAR2(80);
4961 l_component_code VARCHAR2(30);
4962 l_component_type_code VARCHAR2(1);
4963 l_component_appl_id INTEGER;
4964 l_amb_context_code VARCHAR2(30);
4965 l_entity_code VARCHAR2(30);
4966 l_event_class_code VARCHAR2(30);
4967 l_ae_header_id NUMBER;
4968 l_event_type_code VARCHAR2(30);
4969 l_line_definition_code VARCHAR2(30);
4970 l_line_definition_owner_code VARCHAR2(1);
4971 --
4972 -- adr variables
4973 l_segment VARCHAR2(30);
4974 l_ccid NUMBER;
4975 l_adr_transaction_coa_id NUMBER;
4976 l_adr_accounting_coa_id NUMBER;
4980 l_adr_value_combination_id NUMBER;
4977 l_adr_flexfield_segment_code VARCHAR2(30);
4978 l_adr_flex_value_set_id NUMBER;
4979 l_adr_value_type_code VARCHAR2(30);
4981 l_adr_value_segment_code VARCHAR2(30);
4982
4983 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4984 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4985 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4986 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4987
4988 -- 4262811 Variables ------------------------------------------------------------------------------------------
4989 l_entered_amt_idx NUMBER;
4990 l_accted_amt_idx NUMBER;
4991 l_acc_rev_flag VARCHAR2(1);
4992 l_accrual_line_num NUMBER;
4993 l_tmp_amt NUMBER;
4994 l_acc_rev_natural_side_code VARCHAR2(1);
4995
4996 l_num_entries NUMBER;
4997 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4998 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4999 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5000 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5001 l_recog_line_1 NUMBER;
5002 l_recog_line_2 NUMBER;
5003
5004 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5005 l_bflow_applied_to_amt NUMBER; -- 5132302
5006 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5007
5008 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5009
5010 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5011 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5012
5013 ---------------------------------------------------------------------------------------------------------------
5014
5015
5016 --
5017 -- bulk performance
5018 --
5019 l_balance_type_code VARCHAR2(1);
5020 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5021 l_log_module VARCHAR2(240);
5022
5023 --
5024 -- Upgrade strategy
5025 --
5026 l_actual_upg_option VARCHAR2(1);
5027 l_enc_upg_option VARCHAR2(1);
5028
5029 --
5030 BEGIN
5031 --
5032 IF g_log_enabled THEN
5033 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_19';
5034 END IF;
5035 --
5036 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5037
5038 trace
5039 (p_msg => 'BEGIN of AcctLineType_19'
5040 ,p_level => C_LEVEL_PROCEDURE
5041 ,p_module => l_log_module);
5042
5043 END IF;
5044 --
5045 l_component_type := 'AMB_JLT';
5046 l_component_code := 'FV_BPA_RESERVE_DR';
5047 l_component_type_code := 'S';
5048 l_component_appl_id := 201;
5049 l_amb_context_code := 'DEFAULT';
5050 l_entity_code := 'PURCHASE_ORDER';
5051 l_event_class_code := 'PO_PA';
5052 l_event_type_code := 'PO_PA_ALL';
5053 l_line_definition_owner_code := 'S';
5054 l_line_definition_code := 'FV_PO_ALL';
5055 --
5056 l_balance_type_code := 'A';
5057 l_segment := NULL;
5058 l_ccid := NULL;
5059 l_adr_transaction_coa_id := NULL;
5060 l_adr_accounting_coa_id := NULL;
5061 l_adr_flexfield_segment_code := NULL;
5062 l_adr_flex_value_set_id := NULL;
5063 l_adr_value_type_code := NULL;
5064 l_adr_value_combination_id := NULL;
5065 l_adr_value_segment_code := NULL;
5066
5067 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5068 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
5069 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5070 l_budgetary_control_flag := 'Y';
5071
5072 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5073 l_bflow_applied_to_amt := NULL; -- 5132302
5074 l_entered_amt_idx := NULL; -- 4262811
5075 l_accted_amt_idx := NULL; -- 4262811
5076 l_acc_rev_flag := NULL; -- 4262811
5077 l_accrual_line_num := NULL; -- 4262811
5078 l_tmp_amt := NULL; -- 4262811
5079 --
5080
5081 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5082 l_balance_type_code <> 'B' THEN
5083 IF NVL(
5084 xla_ae_sources_pkg.GetSystemSourceChar(
5085 p_source_code => 'XLA_EVENT_TYPE_CODE'
5086 , p_source_type_code => 'Y'
5087 , p_source_application_id => 602
5088 ),'
5089 ') = 'PO_PA_RESERVED' AND
5090 NVL(p_source_13,'
5091 ') = 'M' AND
5092 NVL(p_source_14,'
5093 ') = 'AGREEMENT' AND
5094 NVL(p_source_10,'
5095 ') = 'N'
5096 THEN
5097
5098 --
5099 XLA_AE_LINES_PKG.SetNewLine;
5100
5101 p_balance_type_code := l_balance_type_code;
5102 -- set the flag so later we will know whether the gain loss line needs to be created
5103
5104 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5105 p_actual_flag :='A';
5106 END IF;
5107
5108 --
5109 -- bulk performance
5110 --
5111 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5115 --
5112 p_header_num => 0); -- 4262811
5113 --
5114 -- set accounting line options
5116 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5117 p_natural_side_code => 'D'
5118 , p_gain_or_loss_flag => 'N'
5119 , p_gl_transfer_mode_code => 'S'
5120 , p_acct_entry_type_code => 'A'
5121 , p_switch_side_flag => 'N'
5122 , p_merge_duplicate_code => 'N'
5123 );
5124 --
5125 l_acc_rev_natural_side_code := 'C'; -- 4262811
5126 --
5127 --
5128 -- set accounting line type info
5129 --
5130 xla_ae_lines_pkg.SetAcctLineType
5131 (p_component_type => l_component_type
5132 ,p_event_type_code => l_event_type_code
5133 ,p_line_definition_owner_code => l_line_definition_owner_code
5134 ,p_line_definition_code => l_line_definition_code
5135 ,p_accounting_line_code => l_component_code
5136 ,p_accounting_line_type_code => l_component_type_code
5137 ,p_accounting_line_appl_id => l_component_appl_id
5138 ,p_amb_context_code => l_amb_context_code
5139 ,p_entity_code => l_entity_code
5140 ,p_event_class_code => l_event_class_code);
5141 --
5142 -- set accounting class
5143 --
5144 xla_ae_lines_pkg.SetAcctClass(
5145 p_accounting_class_code => 'PURCHASE_ORDER'
5146 , p_ae_header_id => l_ae_header_id
5147 );
5148
5149 --
5150 -- set rounding class
5151 --
5152 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5153 'PURCHASE_ORDER';
5154
5155 --
5156 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5157 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5158 --
5159 -- bulk performance
5160 --
5161 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5162
5163 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5164 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5165
5166 -- 4955764
5167 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5168 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5169
5170 -- 4458381 Public Sector Enh
5171
5172 --
5173 -- set accounting attributes for the line type
5174 --
5175 l_entered_amt_idx := 23;
5176 l_accted_amt_idx := 28;
5177 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5178 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5179 l_rec_acct_attrs.array_char_value(1) := p_source_15;
5180 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
5181 l_rec_acct_attrs.array_num_value(2) :=
5182 xla_ae_sources_pkg.GetSystemSourceNum(
5183 p_source_code => 'XLA_EVENT_APPL_ID'
5184 , p_source_type_code => 'Y'
5185 , p_source_application_id => 602
5186 );
5187 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
5188 l_rec_acct_attrs.array_char_value(3) := p_source_17;
5189 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
5190 l_rec_acct_attrs.array_char_value(4) :=
5191 xla_ae_sources_pkg.GetSystemSourceChar(
5192 p_source_code => 'XLA_ENTITY_CODE'
5193 , p_source_type_code => 'Y'
5194 , p_source_application_id => 602
5195 );
5196 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
5197 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
5198 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
5199 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
5200 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
5201 l_rec_acct_attrs.array_num_value(7) := p_source_21;
5202 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5203 l_rec_acct_attrs.array_char_value(8) := p_source_22;
5204 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
5205 l_rec_acct_attrs.array_char_value(9) := p_source_23;
5206 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
5207 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
5208 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5209 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
5210 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
5211 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
5212 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
5213 l_rec_acct_attrs.array_char_value(13) := p_source_17;
5214 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
5215 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
5216 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
5217 l_rec_acct_attrs.array_num_value(15) := p_source_26;
5218 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
5219 l_rec_acct_attrs.array_char_value(16) := p_source_27;
5220 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
5221 l_rec_acct_attrs.array_num_value(17) := p_source_28;
5222 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
5223 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
5224 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
5225 l_rec_acct_attrs.array_num_value(19) := p_source_26;
5226 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
5227 l_rec_acct_attrs.array_char_value(20) := p_source_27;
5228 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
5229 l_rec_acct_attrs.array_num_value(21) := p_source_28;
5230 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
5231 l_rec_acct_attrs.array_char_value(22) := p_source_29;
5232 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
5233 l_rec_acct_attrs.array_num_value(23) := p_source_26;
5234 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
5235 l_rec_acct_attrs.array_char_value(24) := p_source_27;
5236 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
5237 l_rec_acct_attrs.array_date_value(25) := p_source_35;
5238 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
5239 l_rec_acct_attrs.array_num_value(26) := p_source_36;
5240 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
5241 l_rec_acct_attrs.array_char_value(27) := p_source_37;
5242 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
5243 l_rec_acct_attrs.array_num_value(28) := p_source_28;
5244 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
5245 l_rec_acct_attrs.array_char_value(29) := p_source_31;
5246 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
5247 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
5248 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
5249 l_rec_acct_attrs.array_char_value(31) := p_source_22;
5250 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
5251 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
5252 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
5253 l_rec_acct_attrs.array_num_value(33) := p_source_32;
5254 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
5255 l_rec_acct_attrs.array_num_value(34) := p_source_32;
5256
5257 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5258 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5259
5260 ---------------------------------------------------------------------------------------------------------------
5261 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5262 ---------------------------------------------------------------------------------------------------------------
5263 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5264
5265 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5266 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5267
5268 IF xla_accounting_cache_pkg.GetValueChar
5269 (p_source_code => 'LEDGER_CATEGORY_CODE'
5270 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5271 AND l_bflow_method_code = 'PRIOR_ENTRY'
5272 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5273 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5274 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5275 )
5276 THEN
5277 xla_ae_lines_pkg.BflowUpgEntry
5278 (p_business_method_code => l_bflow_method_code
5279 ,p_business_class_code => l_bflow_class_code
5280 ,p_balance_type => l_balance_type_code);
5281 ELSE
5282 NULL;
5283 -- No business flow processing for business flow method of NONE.
5284 END IF;
5285
5286 --
5287 -- call analytical criteria
5288 --
5289
5290 --
5291 -- call description
5292 --
5293
5294 xla_ae_lines_pkg.SetLineDescription(
5295 p_ae_header_id => l_ae_header_id
5296 ,p_description => Description_2 (
5297 p_application_id => p_application_id
5298 , p_ae_header_id => l_ae_header_id
5299 , p_source_3 => p_source_3
5300 )
5301 );
5302
5303
5304 --
5305 -- call ADRs
5306 -- Bug 4922099
5307 --
5308 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5309 (NVL(l_actual_upg_option, 'N') = 'O') OR
5310 (NVL(l_enc_upg_option, 'N') = 'O')
5311 )
5312 THEN
5313 NULL;
5314 --
5315 --
5316
5317 l_ccid := AcctDerRule_9(
5318 p_application_id => p_application_id
5319 , p_ae_header_id => l_ae_header_id
5320 , p_source_9 => p_source_9
5321 , x_transaction_coa_id => l_adr_transaction_coa_id
5322 , x_accounting_coa_id => l_adr_accounting_coa_id
5323 , x_value_type_code => l_adr_value_type_code
5324 , p_side => 'NA'
5325 );
5326
5327 xla_ae_lines_pkg.set_ccid(
5328 p_code_combination_id => l_ccid
5329 , p_value_type_code => l_adr_value_type_code
5330 , p_transaction_coa_id => l_adr_transaction_coa_id
5331 , p_accounting_coa_id => l_adr_accounting_coa_id
5332 , p_adr_code => 'FV_ACCOUNT_RULE'
5333 , p_adr_type_code => 'S'
5334 , p_component_type => l_component_type
5335 , p_component_code => l_component_code
5336 , p_component_type_code => l_component_type_code
5337 , p_component_appl_id => l_component_appl_id
5338 , p_amb_context_code => l_amb_context_code
5339 , p_side => 'NA'
5340 );
5341
5342
5343 l_segment := AcctDerRule_5(
5344 p_application_id => p_application_id
5345 , p_ae_header_id => l_ae_header_id
5346 , p_source_7 => p_source_7
5347 , p_source_8 => p_source_8
5348 , x_transaction_coa_id => l_adr_transaction_coa_id
5349 , x_accounting_coa_id => l_adr_accounting_coa_id
5350 , x_flexfield_segment_code => l_adr_flexfield_segment_code
5351 , x_flex_value_set_id => l_adr_flex_value_set_id
5352 , x_value_type_code => l_adr_value_type_code
5353 , x_value_combination_id => l_adr_value_combination_id
5354 , x_value_segment_code => l_adr_value_segment_code
5355 , p_side => 'NA'
5356 , p_override_seg_flag => 'Y'
5357 );
5358
5359 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
5360
5361 xla_ae_lines_pkg.set_segment(
5362 p_to_segment_code => 'GL_ACCOUNT'
5363 , p_segment_value => l_segment
5364 , p_from_segment_code => l_adr_value_segment_code
5365 , p_from_combination_id => l_adr_value_combination_id
5366 , p_value_type_code => l_adr_value_type_code
5367 , p_transaction_coa_id => l_adr_transaction_coa_id
5368 , p_accounting_coa_id => l_adr_accounting_coa_id
5369 , p_flexfield_segment_code => l_adr_flexfield_segment_code
5370 , p_flex_value_set_id => l_adr_flex_value_set_id
5371 , p_adr_code => 'FV_46X002'
5372 , p_adr_type_code => 'S'
5373 , p_component_type => l_component_type
5374 , p_component_code => l_component_code
5375 , p_component_type_code => l_component_type_code
5376 , p_component_appl_id => l_component_appl_id
5377 , p_amb_context_code => l_amb_context_code
5378 , p_entity_code => 'PURCHASE_ORDER'
5379 , p_event_class_code => 'PO_PA'
5380 , p_side => 'NA'
5381 );
5382
5383 END IF;
5384
5385 --
5386 --
5387 END IF;
5388 --
5389 -- Bug 4922099
5390 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5391 (NVL(l_enc_upg_option, 'N') = 'O')
5392 ) AND
5393 (l_bflow_method_code = 'PRIOR_ENTRY')
5394 )
5395 THEN
5396 IF
5397 --
5398 1 = 2
5399 --
5400 THEN
5401 xla_accounting_err_pkg.build_message
5402 (p_appli_s_name => 'XLA'
5403 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5404 ,p_token_1 => 'LINE_NUMBER'
5405 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5406 ,p_token_2 => 'LINE_TYPE_NAME'
5407 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5408 l_component_type
5409 ,l_component_code
5410 ,l_component_type_code
5411 ,l_component_appl_id
5412 ,l_amb_context_code
5413 ,l_entity_code
5414 ,l_event_class_code
5415 )
5416 ,p_token_3 => 'OWNER'
5417 ,p_value_3 => xla_lookups_pkg.get_meaning(
5418 p_lookup_type => 'XLA_OWNER_TYPE'
5419 ,p_lookup_code => l_component_type_code
5420 )
5421 ,p_token_4 => 'PRODUCT_NAME'
5422 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5426 ,p_ae_header_id => NULL
5423 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5424 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5425 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5427 );
5428
5429 IF (C_LEVEL_ERROR>= g_log_level) THEN
5430 trace
5431 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5432 ,p_level => C_LEVEL_ERROR
5433 ,p_module => l_log_module);
5434 END IF;
5435 END IF;
5436 END IF;
5437 --
5438 --
5439 ------------------------------------------------------------------------------------------------
5440 -- 4219869 Business Flow
5441 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5442 -- Prior Entry. Currently, the following code is always generated.
5443 ------------------------------------------------------------------------------------------------
5444 XLA_AE_LINES_PKG.ValidateCurrentLine;
5445
5446 ------------------------------------------------------------------------------------
5447 -- 4219869 Business Flow
5448 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5449 ------------------------------------------------------------------------------------
5450 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5451
5452 ----------------------------------------------------------------------------------
5453 -- 4219869 Business Flow
5454 -- Update journal entry status -- Need to generate this within IF <condition>
5455 ----------------------------------------------------------------------------------
5456 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5457 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5458 ,p_balance_type_code => l_balance_type_code
5459 );
5460
5461 -------------------------------------------------------------------------------------------
5462 -- 4262811 - Generate the Accrual Reversal lines
5463 -------------------------------------------------------------------------------------------
5464 BEGIN
5465 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5466 (g_array_event(p_event_id).array_value_num('header_index'));
5467 IF l_acc_rev_flag IS NULL THEN
5468 l_acc_rev_flag := 'N';
5469 END IF;
5470 EXCEPTION
5471 WHEN OTHERS THEN
5472 l_acc_rev_flag := 'N';
5473 END;
5474 --
5475 IF (l_acc_rev_flag = 'Y') THEN
5476
5477 -- 4645092 ------------------------------------------------------------------------------
5478 -- To allow MPA report to determine if it should generate report process
5479 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5480 ------------------------------------------------------------------------------------------
5481
5482 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5483 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5484
5485 --
5486 -- Update the line information that should be overwritten
5487 --
5488 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5489 p_header_num => 1);
5490 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5491
5492 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5493
5494 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5495 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5496 END IF;
5497
5498 --
5499 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5500 --
5501 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5502 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5503 ELSE
5504 ---------------------------------------------------------------------------------------------------
5505 -- 4262811a Switch Sign
5506 ---------------------------------------------------------------------------------------------------
5507 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5508 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5509 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5510 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5511 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5512 -- 5132302
5513 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5514 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5515
5516 END IF;
5517
5518 -- 4955764
5519 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5520 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5521
5522
5523 XLA_AE_LINES_PKG.ValidateCurrentLine;
5524 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5525
5526 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5527 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5528 ,p_balance_type_code => l_balance_type_code);
5529
5530 END IF;
5531
5532 -----------------------------------------------------------------------------------------
5533 -- 4262811 Multiperiod Accounting
5534 -----------------------------------------------------------------------------------------
5535 -- No MPA option is assigned.
5536
5537
5538 END IF;
5539 END IF;
5540 --
5541
5542 --
5543 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5544 trace
5545 (p_msg => 'END of AcctLineType_19'
5546 ,p_level => C_LEVEL_PROCEDURE
5547 ,p_module => l_log_module);
5548 END IF;
5549 --
5550 EXCEPTION
5551 WHEN xla_exceptions_pkg.application_exception THEN
5552 RAISE;
5553 WHEN OTHERS THEN
5554 xla_exceptions_pkg.raise_message
5555 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_19');
5556 END AcctLineType_19;
5557 --
5558
5559 ---------------------------------------
5560 --
5561 -- PRIVATE FUNCTION
5562 -- AcctLineType_20
5563 --
5564 ---------------------------------------
5565 PROCEDURE AcctLineType_20 (
5566 p_application_id IN NUMBER
5567 ,p_event_id IN NUMBER
5568 ,p_calculate_acctd_flag IN VARCHAR2
5569 ,p_calculate_g_l_flag IN VARCHAR2
5570 ,p_actual_flag IN OUT VARCHAR2
5571 ,p_balance_type_code OUT VARCHAR2
5572 ,p_gain_or_loss_ref OUT VARCHAR2
5573
5574 --Journal entry Line Description
5575 , p_source_3 IN VARCHAR2
5576 --Federal Fund Category
5577 , p_source_7 IN VARCHAR2
5578 --Federal Fund Expired Status
5579 , p_source_8 IN VARCHAR2
5580 --Budget Account
5581 , p_source_9 IN NUMBER
5582 --Federal Prior Year Flag
5583 , p_source_10 IN VARCHAR2
5584 --Main Or Backing Code
5585 , p_source_13 IN VARCHAR2
5586 --PO Distribution Type
5587 , p_source_14 IN VARCHAR2
5588 --Accounting Reversal Flag
5589 , p_source_15 IN VARCHAR2
5590 --Distribution Link Type
5591 , p_source_17 IN VARCHAR2
5592 --PO Distribution Identifier
5593 , p_source_19 IN NUMBER
5594 --PO Header Identifier
5595 , p_source_20 IN NUMBER
5596 --Applied To Application Identifier
5597 , p_source_21 IN NUMBER
5598 --Applied To Distribution Link Type
5599 , p_source_22 IN VARCHAR2
5600 --Applied To Entity Code
5601 , p_source_23 IN VARCHAR2
5602 --Applied To Distribution Identifier 1
5603 , p_source_24 IN NUMBER
5604 --Applied To Header Identifier 1
5605 , p_source_25 IN NUMBER
5606 --Entered Amount
5607 , p_source_26 IN NUMBER
5608 --Currency Code
5609 , p_source_27 IN VARCHAR2
5610 --Accounted Amount
5611 , p_source_28 IN NUMBER
5612 --PO Encumbrance Upgrade Option
5613 , p_source_29 IN VARCHAR2
5614 --JFMIP Reference
5615 , p_source_31 IN VARCHAR2
5616 --PO Upgrade Encumbrance Type Identifier
5617 , p_source_32 IN NUMBER
5618 --Currency Conversion Date
5619 , p_source_35 IN DATE
5620 --Currency Conversion Rate
5621 , p_source_36 IN NUMBER
5622 --Currency Conversion Type
5623 , p_source_37 IN VARCHAR2
5624 )
5625 IS
5626
5627 l_component_type VARCHAR2(80);
5628 l_component_code VARCHAR2(30);
5629 l_component_type_code VARCHAR2(1);
5630 l_component_appl_id INTEGER;
5631 l_amb_context_code VARCHAR2(30);
5632 l_entity_code VARCHAR2(30);
5633 l_event_class_code VARCHAR2(30);
5634 l_ae_header_id NUMBER;
5635 l_event_type_code VARCHAR2(30);
5636 l_line_definition_code VARCHAR2(30);
5637 l_line_definition_owner_code VARCHAR2(1);
5638 --
5639 -- adr variables
5640 l_segment VARCHAR2(30);
5641 l_ccid NUMBER;
5642 l_adr_transaction_coa_id NUMBER;
5643 l_adr_accounting_coa_id NUMBER;
5644 l_adr_flexfield_segment_code VARCHAR2(30);
5645 l_adr_flex_value_set_id NUMBER;
5646 l_adr_value_type_code VARCHAR2(30);
5647 l_adr_value_combination_id NUMBER;
5648 l_adr_value_segment_code VARCHAR2(30);
5649
5650 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5651 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5652 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5653 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5654
5655 -- 4262811 Variables ------------------------------------------------------------------------------------------
5656 l_entered_amt_idx NUMBER;
5657 l_accted_amt_idx NUMBER;
5658 l_acc_rev_flag VARCHAR2(1);
5659 l_accrual_line_num NUMBER;
5660 l_tmp_amt NUMBER;
5661 l_acc_rev_natural_side_code VARCHAR2(1);
5662
5663 l_num_entries NUMBER;
5664 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5665 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5666 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5667 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5668 l_recog_line_1 NUMBER;
5669 l_recog_line_2 NUMBER;
5670
5671 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5672 l_bflow_applied_to_amt NUMBER; -- 5132302
5673 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5674
5675 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5676
5677 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5678 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5679
5680 ---------------------------------------------------------------------------------------------------------------
5681
5682
5683 --
5684 -- bulk performance
5685 --
5686 l_balance_type_code VARCHAR2(1);
5687 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5688 l_log_module VARCHAR2(240);
5689
5690 --
5691 -- Upgrade strategy
5692 --
5693 l_actual_upg_option VARCHAR2(1);
5694 l_enc_upg_option VARCHAR2(1);
5695
5696 --
5697 BEGIN
5698 --
5699 IF g_log_enabled THEN
5700 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_20';
5701 END IF;
5702 --
5703 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5704
5705 trace
5706 (p_msg => 'BEGIN of AcctLineType_20'
5707 ,p_level => C_LEVEL_PROCEDURE
5708 ,p_module => l_log_module);
5709
5710 END IF;
5711 --
5712 l_component_type := 'AMB_JLT';
5713 l_component_code := 'FV_BPA_UNRESERVE_CR';
5714 l_component_type_code := 'S';
5715 l_component_appl_id := 201;
5716 l_amb_context_code := 'DEFAULT';
5717 l_entity_code := 'PURCHASE_ORDER';
5718 l_event_class_code := 'PO_PA';
5719 l_event_type_code := 'PO_PA_ALL';
5720 l_line_definition_owner_code := 'S';
5721 l_line_definition_code := 'FV_PO_ALL';
5722 --
5723 l_balance_type_code := 'A';
5727 l_adr_accounting_coa_id := NULL;
5724 l_segment := NULL;
5725 l_ccid := NULL;
5726 l_adr_transaction_coa_id := NULL;
5728 l_adr_flexfield_segment_code := NULL;
5729 l_adr_flex_value_set_id := NULL;
5730 l_adr_value_type_code := NULL;
5731 l_adr_value_combination_id := NULL;
5732 l_adr_value_segment_code := NULL;
5733
5734 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5735 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
5736 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5737 l_budgetary_control_flag := 'Y';
5738
5739 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5740 l_bflow_applied_to_amt := NULL; -- 5132302
5741 l_entered_amt_idx := NULL; -- 4262811
5742 l_accted_amt_idx := NULL; -- 4262811
5743 l_acc_rev_flag := NULL; -- 4262811
5744 l_accrual_line_num := NULL; -- 4262811
5745 l_tmp_amt := NULL; -- 4262811
5746 --
5747
5748 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5749 l_balance_type_code <> 'B' THEN
5750 IF (NVL(
5751 xla_ae_sources_pkg.GetSystemSourceChar(
5752 p_source_code => 'XLA_EVENT_TYPE_CODE'
5753 , p_source_type_code => 'Y'
5754 , p_source_application_id => 602
5755 ),'
5756 ') = 'PO_PA_UNRESERVED' OR
5757 NVL(
5758 xla_ae_sources_pkg.GetSystemSourceChar(
5759 p_source_code => 'XLA_EVENT_TYPE_CODE'
5760 , p_source_type_code => 'Y'
5761 , p_source_application_id => 602
5762 ),'
5763 ') = 'PO_PA_REJECTED' OR
5764 NVL(
5765 xla_ae_sources_pkg.GetSystemSourceChar(
5766 p_source_code => 'XLA_EVENT_TYPE_CODE'
5767 , p_source_type_code => 'Y'
5768 , p_source_application_id => 602
5769 ),'
5770 ') = 'PO_PA_INV_CANCELLED' OR
5771 NVL(
5772 xla_ae_sources_pkg.GetSystemSourceChar(
5773 p_source_code => 'XLA_EVENT_TYPE_CODE'
5774 , p_source_type_code => 'Y'
5775 , p_source_application_id => 602
5776 ),'
5777 ') = 'PO_PA_FINAL_CLOSED') AND
5778 NVL(p_source_13,'
5779 ') = 'M' AND
5780 NVL(p_source_14,'
5781 ') = 'AGREEMENT' AND
5782 NVL(p_source_10,'
5783 ') = 'N'
5784 THEN
5785
5786 --
5787 XLA_AE_LINES_PKG.SetNewLine;
5788
5789 p_balance_type_code := l_balance_type_code;
5790 -- set the flag so later we will know whether the gain loss line needs to be created
5791
5792 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5793 p_actual_flag :='A';
5794 END IF;
5795
5796 --
5797 -- bulk performance
5798 --
5799 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5800 p_header_num => 0); -- 4262811
5801 --
5802 -- set accounting line options
5803 --
5804 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5805 p_natural_side_code => 'C'
5806 , p_gain_or_loss_flag => 'N'
5807 , p_gl_transfer_mode_code => 'S'
5808 , p_acct_entry_type_code => 'A'
5809 , p_switch_side_flag => 'N'
5810 , p_merge_duplicate_code => 'N'
5811 );
5812 --
5813 l_acc_rev_natural_side_code := 'D'; -- 4262811
5814 --
5815 --
5816 -- set accounting line type info
5817 --
5818 xla_ae_lines_pkg.SetAcctLineType
5819 (p_component_type => l_component_type
5820 ,p_event_type_code => l_event_type_code
5821 ,p_line_definition_owner_code => l_line_definition_owner_code
5822 ,p_line_definition_code => l_line_definition_code
5823 ,p_accounting_line_code => l_component_code
5824 ,p_accounting_line_type_code => l_component_type_code
5825 ,p_accounting_line_appl_id => l_component_appl_id
5826 ,p_amb_context_code => l_amb_context_code
5827 ,p_entity_code => l_entity_code
5828 ,p_event_class_code => l_event_class_code);
5829 --
5830 -- set accounting class
5831 --
5832 xla_ae_lines_pkg.SetAcctClass(
5833 p_accounting_class_code => 'PURCHASE_ORDER'
5834 , p_ae_header_id => l_ae_header_id
5835 );
5836
5837 --
5838 -- set rounding class
5839 --
5840 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5841 'PURCHASE_ORDER';
5842
5843 --
5844 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5845 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5846 --
5847 -- bulk performance
5848 --
5849 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5850
5851 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5852 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5853
5854 -- 4955764
5855 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5856 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5857
5858 -- 4458381 Public Sector Enh
5859
5860 --
5861 -- set accounting attributes for the line type
5862 --
5863 l_entered_amt_idx := 23;
5864 l_accted_amt_idx := 28;
5865 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5866 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5867 l_rec_acct_attrs.array_char_value(1) := p_source_15;
5868 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
5869 l_rec_acct_attrs.array_num_value(2) :=
5870 xla_ae_sources_pkg.GetSystemSourceNum(
5871 p_source_code => 'XLA_EVENT_APPL_ID'
5872 , p_source_type_code => 'Y'
5873 , p_source_application_id => 602
5874 );
5875 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
5876 l_rec_acct_attrs.array_char_value(3) := p_source_17;
5877 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
5878 l_rec_acct_attrs.array_char_value(4) :=
5879 xla_ae_sources_pkg.GetSystemSourceChar(
5880 p_source_code => 'XLA_ENTITY_CODE'
5881 , p_source_type_code => 'Y'
5882 , p_source_application_id => 602
5883 );
5884 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
5885 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
5886 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
5887 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
5888 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
5889 l_rec_acct_attrs.array_num_value(7) := p_source_21;
5890 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5891 l_rec_acct_attrs.array_char_value(8) := p_source_22;
5892 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
5893 l_rec_acct_attrs.array_char_value(9) := p_source_23;
5894 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
5895 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
5896 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5897 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
5898 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
5899 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
5900 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
5901 l_rec_acct_attrs.array_char_value(13) := p_source_17;
5902 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
5903 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
5904 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
5905 l_rec_acct_attrs.array_num_value(15) := p_source_26;
5906 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
5907 l_rec_acct_attrs.array_char_value(16) := p_source_27;
5908 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
5909 l_rec_acct_attrs.array_num_value(17) := p_source_28;
5910 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
5911 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
5912 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
5913 l_rec_acct_attrs.array_num_value(19) := p_source_26;
5914 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
5915 l_rec_acct_attrs.array_char_value(20) := p_source_27;
5916 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
5917 l_rec_acct_attrs.array_num_value(21) := p_source_28;
5918 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
5919 l_rec_acct_attrs.array_char_value(22) := p_source_29;
5920 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
5921 l_rec_acct_attrs.array_num_value(23) := p_source_26;
5922 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
5923 l_rec_acct_attrs.array_char_value(24) := p_source_27;
5924 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
5925 l_rec_acct_attrs.array_date_value(25) := p_source_35;
5926 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
5927 l_rec_acct_attrs.array_num_value(26) := p_source_36;
5928 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
5929 l_rec_acct_attrs.array_char_value(27) := p_source_37;
5930 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
5931 l_rec_acct_attrs.array_num_value(28) := p_source_28;
5932 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
5933 l_rec_acct_attrs.array_char_value(29) := p_source_31;
5934 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
5935 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
5936 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
5937 l_rec_acct_attrs.array_char_value(31) := p_source_22;
5938 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
5939 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
5940 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
5941 l_rec_acct_attrs.array_num_value(33) := p_source_32;
5942 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
5943 l_rec_acct_attrs.array_num_value(34) := p_source_32;
5944
5945 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5946 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5947
5948 ---------------------------------------------------------------------------------------------------------------
5949 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5950 ---------------------------------------------------------------------------------------------------------------
5951 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5952
5953 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5954 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5955
5956 IF xla_accounting_cache_pkg.GetValueChar
5957 (p_source_code => 'LEDGER_CATEGORY_CODE'
5958 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5959 AND l_bflow_method_code = 'PRIOR_ENTRY'
5960 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5961 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5962 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5963 )
5964 THEN
5965 xla_ae_lines_pkg.BflowUpgEntry
5966 (p_business_method_code => l_bflow_method_code
5967 ,p_business_class_code => l_bflow_class_code
5968 ,p_balance_type => l_balance_type_code);
5969 ELSE
5970 NULL;
5971 -- No business flow processing for business flow method of NONE.
5972 END IF;
5973
5974 --
5975 -- call analytical criteria
5976 --
5977
5978 --
5979 -- call description
5980 --
5981
5982 xla_ae_lines_pkg.SetLineDescription(
5983 p_ae_header_id => l_ae_header_id
5984 ,p_description => Description_2 (
5985 p_application_id => p_application_id
5986 , p_ae_header_id => l_ae_header_id
5987 , p_source_3 => p_source_3
5988 )
5989 );
5990
5991
5992 --
5993 -- call ADRs
5994 -- Bug 4922099
5995 --
5996 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5997 (NVL(l_actual_upg_option, 'N') = 'O') OR
5998 (NVL(l_enc_upg_option, 'N') = 'O')
5999 )
6000 THEN
6001 NULL;
6002 --
6003 --
6004
6005 l_ccid := AcctDerRule_9(
6006 p_application_id => p_application_id
6007 , p_ae_header_id => l_ae_header_id
6008 , p_source_9 => p_source_9
6009 , x_transaction_coa_id => l_adr_transaction_coa_id
6010 , x_accounting_coa_id => l_adr_accounting_coa_id
6011 , x_value_type_code => l_adr_value_type_code
6012 , p_side => 'NA'
6013 );
6014
6015 xla_ae_lines_pkg.set_ccid(
6016 p_code_combination_id => l_ccid
6017 , p_value_type_code => l_adr_value_type_code
6018 , p_transaction_coa_id => l_adr_transaction_coa_id
6019 , p_accounting_coa_id => l_adr_accounting_coa_id
6020 , p_adr_code => 'FV_ACCOUNT_RULE'
6021 , p_adr_type_code => 'S'
6022 , p_component_type => l_component_type
6023 , p_component_code => l_component_code
6024 , p_component_type_code => l_component_type_code
6025 , p_component_appl_id => l_component_appl_id
6026 , p_amb_context_code => l_amb_context_code
6027 , p_side => 'NA'
6028 );
6029
6030
6031 l_segment := AcctDerRule_5(
6032 p_application_id => p_application_id
6033 , p_ae_header_id => l_ae_header_id
6034 , p_source_7 => p_source_7
6035 , p_source_8 => p_source_8
6036 , x_transaction_coa_id => l_adr_transaction_coa_id
6037 , x_accounting_coa_id => l_adr_accounting_coa_id
6038 , x_flexfield_segment_code => l_adr_flexfield_segment_code
6039 , x_flex_value_set_id => l_adr_flex_value_set_id
6040 , x_value_type_code => l_adr_value_type_code
6041 , x_value_combination_id => l_adr_value_combination_id
6042 , x_value_segment_code => l_adr_value_segment_code
6043 , p_side => 'NA'
6044 , p_override_seg_flag => 'Y'
6045 );
6046
6047 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
6048
6049 xla_ae_lines_pkg.set_segment(
6050 p_to_segment_code => 'GL_ACCOUNT'
6051 , p_segment_value => l_segment
6052 , p_from_segment_code => l_adr_value_segment_code
6053 , p_from_combination_id => l_adr_value_combination_id
6054 , p_value_type_code => l_adr_value_type_code
6055 , p_transaction_coa_id => l_adr_transaction_coa_id
6056 , p_accounting_coa_id => l_adr_accounting_coa_id
6057 , p_flexfield_segment_code => l_adr_flexfield_segment_code
6058 , p_flex_value_set_id => l_adr_flex_value_set_id
6059 , p_adr_code => 'FV_46X002'
6060 , p_adr_type_code => 'S'
6061 , p_component_type => l_component_type
6062 , p_component_code => l_component_code
6063 , p_component_type_code => l_component_type_code
6064 , p_component_appl_id => l_component_appl_id
6065 , p_amb_context_code => l_amb_context_code
6066 , p_entity_code => 'PURCHASE_ORDER'
6067 , p_event_class_code => 'PO_PA'
6068 , p_side => 'NA'
6069 );
6070
6071 END IF;
6072
6073 --
6074 --
6075 END IF;
6076 --
6077 -- Bug 4922099
6078 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6079 (NVL(l_enc_upg_option, 'N') = 'O')
6080 ) AND
6081 (l_bflow_method_code = 'PRIOR_ENTRY')
6082 )
6083 THEN
6084 IF
6085 --
6086 1 = 2
6087 --
6088 THEN
6089 xla_accounting_err_pkg.build_message
6090 (p_appli_s_name => 'XLA'
6091 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6092 ,p_token_1 => 'LINE_NUMBER'
6093 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6094 ,p_token_2 => 'LINE_TYPE_NAME'
6095 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6096 l_component_type
6097 ,l_component_code
6098 ,l_component_type_code
6099 ,l_component_appl_id
6100 ,l_amb_context_code
6101 ,l_entity_code
6102 ,l_event_class_code
6103 )
6104 ,p_token_3 => 'OWNER'
6105 ,p_value_3 => xla_lookups_pkg.get_meaning(
6106 p_lookup_type => 'XLA_OWNER_TYPE'
6107 ,p_lookup_code => l_component_type_code
6108 )
6109 ,p_token_4 => 'PRODUCT_NAME'
6110 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6111 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6112 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6113 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6114 ,p_ae_header_id => NULL
6115 );
6116
6117 IF (C_LEVEL_ERROR>= g_log_level) THEN
6118 trace
6119 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6120 ,p_level => C_LEVEL_ERROR
6121 ,p_module => l_log_module);
6122 END IF;
6123 END IF;
6124 END IF;
6125 --
6126 --
6127 ------------------------------------------------------------------------------------------------
6128 -- 4219869 Business Flow
6129 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6130 -- Prior Entry. Currently, the following code is always generated.
6131 ------------------------------------------------------------------------------------------------
6132 XLA_AE_LINES_PKG.ValidateCurrentLine;
6133
6134 ------------------------------------------------------------------------------------
6135 -- 4219869 Business Flow
6136 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6137 ------------------------------------------------------------------------------------
6138 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6139
6140 ----------------------------------------------------------------------------------
6141 -- 4219869 Business Flow
6142 -- Update journal entry status -- Need to generate this within IF <condition>
6143 ----------------------------------------------------------------------------------
6144 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6145 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6146 ,p_balance_type_code => l_balance_type_code
6147 );
6148
6149 -------------------------------------------------------------------------------------------
6150 -- 4262811 - Generate the Accrual Reversal lines
6151 -------------------------------------------------------------------------------------------
6152 BEGIN
6153 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6154 (g_array_event(p_event_id).array_value_num('header_index'));
6155 IF l_acc_rev_flag IS NULL THEN
6156 l_acc_rev_flag := 'N';
6157 END IF;
6158 EXCEPTION
6159 WHEN OTHERS THEN
6160 l_acc_rev_flag := 'N';
6161 END;
6162 --
6163 IF (l_acc_rev_flag = 'Y') THEN
6164
6165 -- 4645092 ------------------------------------------------------------------------------
6166 -- To allow MPA report to determine if it should generate report process
6167 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6168 ------------------------------------------------------------------------------------------
6169
6170 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6171 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6172
6173 --
6174 -- Update the line information that should be overwritten
6175 --
6176 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6177 p_header_num => 1);
6178 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6179
6180 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6181
6182 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6183 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6184 END IF;
6185
6186 --
6187 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6188 --
6189 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6190 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6191 ELSE
6192 ---------------------------------------------------------------------------------------------------
6193 -- 4262811a Switch Sign
6194 ---------------------------------------------------------------------------------------------------
6195 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6196 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6197 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6198 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6199 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6200 -- 5132302
6201 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6202 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6203
6204 END IF;
6205
6206 -- 4955764
6207 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6208 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6209
6210
6211 XLA_AE_LINES_PKG.ValidateCurrentLine;
6212 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6213
6214 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6215 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6216 ,p_balance_type_code => l_balance_type_code);
6217
6218 END IF;
6219
6220 -----------------------------------------------------------------------------------------
6221 -- 4262811 Multiperiod Accounting
6222 -----------------------------------------------------------------------------------------
6223 -- No MPA option is assigned.
6224
6225
6226 END IF;
6227 END IF;
6228 --
6229
6230 --
6231 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6232 trace
6233 (p_msg => 'END of AcctLineType_20'
6234 ,p_level => C_LEVEL_PROCEDURE
6235 ,p_module => l_log_module);
6236 END IF;
6237 --
6238 EXCEPTION
6239 WHEN xla_exceptions_pkg.application_exception THEN
6240 RAISE;
6241 WHEN OTHERS THEN
6242 xla_exceptions_pkg.raise_message
6243 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_20');
6244 END AcctLineType_20;
6245 --
6246
6247 ---------------------------------------
6248 --
6249 -- PRIVATE FUNCTION
6250 -- AcctLineType_21
6251 --
6252 ---------------------------------------
6253 PROCEDURE AcctLineType_21 (
6254 p_application_id IN NUMBER
6255 ,p_event_id IN NUMBER
6256 ,p_calculate_acctd_flag IN VARCHAR2
6257 ,p_calculate_g_l_flag IN VARCHAR2
6258 ,p_actual_flag IN OUT VARCHAR2
6259 ,p_balance_type_code OUT VARCHAR2
6260 ,p_gain_or_loss_ref OUT VARCHAR2
6261
6262 --Journal entry Line Description
6263 , p_source_3 IN VARCHAR2
6264 --Federal Fund Category
6265 , p_source_7 IN VARCHAR2
6266 --Budget Account
6267 , p_source_9 IN NUMBER
6268 --Federal Prior Year Flag
6269 , p_source_10 IN VARCHAR2
6270 --Main Or Backing Code
6271 , p_source_13 IN VARCHAR2
6272 --PO Distribution Type
6273 , p_source_14 IN VARCHAR2
6274 --Accounting Reversal Flag
6275 , p_source_15 IN VARCHAR2
6276 --Distribution Link Type
6277 , p_source_17 IN VARCHAR2
6278 --PO Distribution Identifier
6279 , p_source_19 IN NUMBER
6280 --PO Header Identifier
6281 , p_source_20 IN NUMBER
6282 --Applied To Application Identifier
6283 , p_source_21 IN NUMBER
6284 --Applied To Distribution Link Type
6285 , p_source_22 IN VARCHAR2
6286 --Applied To Entity Code
6287 , p_source_23 IN VARCHAR2
6288 --Applied To Distribution Identifier 1
6289 , p_source_24 IN NUMBER
6290 --Applied To Header Identifier 1
6291 , p_source_25 IN NUMBER
6292 --Entered Amount
6293 , p_source_26 IN NUMBER
6294 --Currency Code
6295 , p_source_27 IN VARCHAR2
6296 --Accounted Amount
6297 , p_source_28 IN NUMBER
6298 --PO Encumbrance Upgrade Option
6299 , p_source_29 IN VARCHAR2
6300 --JFMIP Reference
6301 , p_source_31 IN VARCHAR2
6302 --PO Upgrade Encumbrance Type Identifier
6303 , p_source_32 IN NUMBER
6304 --Currency Conversion Date
6305 , p_source_35 IN DATE
6306 --Currency Conversion Rate
6307 , p_source_36 IN NUMBER
6308 --Currency Conversion Type
6309 , p_source_37 IN VARCHAR2
6310 )
6311 IS
6312
6313 l_component_type VARCHAR2(80);
6314 l_component_code VARCHAR2(30);
6315 l_component_type_code VARCHAR2(1);
6316 l_component_appl_id INTEGER;
6317 l_amb_context_code VARCHAR2(30);
6318 l_entity_code VARCHAR2(30);
6319 l_event_class_code VARCHAR2(30);
6320 l_ae_header_id NUMBER;
6321 l_event_type_code VARCHAR2(30);
6322 l_line_definition_code VARCHAR2(30);
6323 l_line_definition_owner_code VARCHAR2(1);
6324 --
6325 -- adr variables
6326 l_segment VARCHAR2(30);
6327 l_ccid NUMBER;
6328 l_adr_transaction_coa_id NUMBER;
6329 l_adr_accounting_coa_id NUMBER;
6330 l_adr_flexfield_segment_code VARCHAR2(30);
6331 l_adr_flex_value_set_id NUMBER;
6332 l_adr_value_type_code VARCHAR2(30);
6333 l_adr_value_combination_id NUMBER;
6334 l_adr_value_segment_code VARCHAR2(30);
6335
6336 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6337 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6338 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6339 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6340
6341 -- 4262811 Variables ------------------------------------------------------------------------------------------
6342 l_entered_amt_idx NUMBER;
6343 l_accted_amt_idx NUMBER;
6344 l_acc_rev_flag VARCHAR2(1);
6345 l_accrual_line_num NUMBER;
6346 l_tmp_amt NUMBER;
6347 l_acc_rev_natural_side_code VARCHAR2(1);
6348
6349 l_num_entries NUMBER;
6350 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6351 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6352 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6353 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6354 l_recog_line_1 NUMBER;
6355 l_recog_line_2 NUMBER;
6356
6357 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6358 l_bflow_applied_to_amt NUMBER; -- 5132302
6359 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6360
6361 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6362
6363 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6364 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6365
6366 ---------------------------------------------------------------------------------------------------------------
6367
6368
6369 --
6370 -- bulk performance
6371 --
6372 l_balance_type_code VARCHAR2(1);
6373 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6374 l_log_module VARCHAR2(240);
6375
6376 --
6377 -- Upgrade strategy
6378 --
6379 l_actual_upg_option VARCHAR2(1);
6380 l_enc_upg_option VARCHAR2(1);
6381
6382 --
6383 BEGIN
6384 --
6385 IF g_log_enabled THEN
6386 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_21';
6387 END IF;
6388 --
6389 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6390
6391 trace
6392 (p_msg => 'BEGIN of AcctLineType_21'
6393 ,p_level => C_LEVEL_PROCEDURE
6397 --
6394 ,p_module => l_log_module);
6395
6396 END IF;
6398 l_component_type := 'AMB_JLT';
6399 l_component_code := 'FV_BPA_UNRESERVE_DR';
6400 l_component_type_code := 'S';
6401 l_component_appl_id := 201;
6402 l_amb_context_code := 'DEFAULT';
6403 l_entity_code := 'PURCHASE_ORDER';
6404 l_event_class_code := 'PO_PA';
6405 l_event_type_code := 'PO_PA_ALL';
6406 l_line_definition_owner_code := 'S';
6407 l_line_definition_code := 'FV_PO_ALL';
6408 --
6409 l_balance_type_code := 'A';
6410 l_segment := NULL;
6411 l_ccid := NULL;
6412 l_adr_transaction_coa_id := NULL;
6413 l_adr_accounting_coa_id := NULL;
6414 l_adr_flexfield_segment_code := NULL;
6415 l_adr_flex_value_set_id := NULL;
6416 l_adr_value_type_code := NULL;
6417 l_adr_value_combination_id := NULL;
6418 l_adr_value_segment_code := NULL;
6419
6420 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6421 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
6422 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6423 l_budgetary_control_flag := 'Y';
6424
6425 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6426 l_bflow_applied_to_amt := NULL; -- 5132302
6427 l_entered_amt_idx := NULL; -- 4262811
6428 l_accted_amt_idx := NULL; -- 4262811
6429 l_acc_rev_flag := NULL; -- 4262811
6430 l_accrual_line_num := NULL; -- 4262811
6431 l_tmp_amt := NULL; -- 4262811
6432 --
6433
6434 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6435 l_balance_type_code <> 'B' THEN
6436 IF (NVL(
6437 xla_ae_sources_pkg.GetSystemSourceChar(
6438 p_source_code => 'XLA_EVENT_TYPE_CODE'
6439 , p_source_type_code => 'Y'
6440 , p_source_application_id => 602
6441 ),'
6442 ') = 'PO_PA_UNRESERVED' OR
6443 NVL(
6444 xla_ae_sources_pkg.GetSystemSourceChar(
6445 p_source_code => 'XLA_EVENT_TYPE_CODE'
6446 , p_source_type_code => 'Y'
6447 , p_source_application_id => 602
6448 ),'
6449 ') = 'PO_PA_REJECTED' OR
6450 NVL(
6451 xla_ae_sources_pkg.GetSystemSourceChar(
6452 p_source_code => 'XLA_EVENT_TYPE_CODE'
6453 , p_source_type_code => 'Y'
6454 , p_source_application_id => 602
6455 ),'
6456 ') = 'PO_PA_INV_CANCELLED' OR
6457 NVL(
6458 xla_ae_sources_pkg.GetSystemSourceChar(
6459 p_source_code => 'XLA_EVENT_TYPE_CODE'
6460 , p_source_type_code => 'Y'
6461 , p_source_application_id => 602
6462 ),'
6463 ') = 'PO_PA_FINAL_CLOSe') AND
6464 NVL(p_source_13,'
6465 ') = 'M' AND
6466 NVL(p_source_14,'
6467 ') = 'AGREEMENT' AND
6468 NVL(p_source_10,'
6469 ') = 'N'
6470 THEN
6471
6472 --
6473 XLA_AE_LINES_PKG.SetNewLine;
6474
6475 p_balance_type_code := l_balance_type_code;
6476 -- set the flag so later we will know whether the gain loss line needs to be created
6477
6478 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6479 p_actual_flag :='A';
6480 END IF;
6481
6482 --
6483 -- bulk performance
6484 --
6485 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6486 p_header_num => 0); -- 4262811
6487 --
6488 -- set accounting line options
6489 --
6490 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6491 p_natural_side_code => 'D'
6492 , p_gain_or_loss_flag => 'N'
6493 , p_gl_transfer_mode_code => 'S'
6494 , p_acct_entry_type_code => 'A'
6495 , p_switch_side_flag => 'N'
6496 , p_merge_duplicate_code => 'N'
6497 );
6498 --
6499 l_acc_rev_natural_side_code := 'C'; -- 4262811
6500 --
6501 --
6502 -- set accounting line type info
6503 --
6504 xla_ae_lines_pkg.SetAcctLineType
6505 (p_component_type => l_component_type
6506 ,p_event_type_code => l_event_type_code
6507 ,p_line_definition_owner_code => l_line_definition_owner_code
6508 ,p_line_definition_code => l_line_definition_code
6509 ,p_accounting_line_code => l_component_code
6510 ,p_accounting_line_type_code => l_component_type_code
6511 ,p_accounting_line_appl_id => l_component_appl_id
6512 ,p_amb_context_code => l_amb_context_code
6513 ,p_entity_code => l_entity_code
6514 ,p_event_class_code => l_event_class_code);
6515 --
6516 -- set accounting class
6517 --
6518 xla_ae_lines_pkg.SetAcctClass(
6519 p_accounting_class_code => 'PURCHASE_ORDER'
6520 , p_ae_header_id => l_ae_header_id
6521 );
6522
6523 --
6524 -- set rounding class
6525 --
6526 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6527 'PURCHASE_ORDER';
6528
6529 --
6530 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6531 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6532 --
6533 -- bulk performance
6534 --
6535 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6536
6537 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6538 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6539
6540 -- 4955764
6541 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6542 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6543
6544 -- 4458381 Public Sector Enh
6545
6546 --
6547 -- set accounting attributes for the line type
6548 --
6549 l_entered_amt_idx := 23;
6550 l_accted_amt_idx := 28;
6551 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6552 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6553 l_rec_acct_attrs.array_char_value(1) := p_source_15;
6554 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
6555 l_rec_acct_attrs.array_num_value(2) :=
6556 xla_ae_sources_pkg.GetSystemSourceNum(
6557 p_source_code => 'XLA_EVENT_APPL_ID'
6558 , p_source_type_code => 'Y'
6559 , p_source_application_id => 602
6560 );
6561 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
6562 l_rec_acct_attrs.array_char_value(3) := p_source_17;
6563 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
6564 l_rec_acct_attrs.array_char_value(4) :=
6565 xla_ae_sources_pkg.GetSystemSourceChar(
6566 p_source_code => 'XLA_ENTITY_CODE'
6567 , p_source_type_code => 'Y'
6568 , p_source_application_id => 602
6569 );
6570 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
6571 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
6572 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
6573 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
6574 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
6575 l_rec_acct_attrs.array_num_value(7) := p_source_21;
6576 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6577 l_rec_acct_attrs.array_char_value(8) := p_source_22;
6578 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
6579 l_rec_acct_attrs.array_char_value(9) := p_source_23;
6580 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
6581 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
6582 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6583 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
6584 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
6585 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
6586 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
6587 l_rec_acct_attrs.array_char_value(13) := p_source_17;
6588 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
6589 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
6590 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
6591 l_rec_acct_attrs.array_num_value(15) := p_source_26;
6592 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
6593 l_rec_acct_attrs.array_char_value(16) := p_source_27;
6594 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
6595 l_rec_acct_attrs.array_num_value(17) := p_source_28;
6596 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
6597 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
6598 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
6599 l_rec_acct_attrs.array_num_value(19) := p_source_26;
6600 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
6601 l_rec_acct_attrs.array_char_value(20) := p_source_27;
6602 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
6603 l_rec_acct_attrs.array_num_value(21) := p_source_28;
6604 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
6605 l_rec_acct_attrs.array_char_value(22) := p_source_29;
6606 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
6607 l_rec_acct_attrs.array_num_value(23) := p_source_26;
6608 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
6609 l_rec_acct_attrs.array_char_value(24) := p_source_27;
6610 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
6611 l_rec_acct_attrs.array_date_value(25) := p_source_35;
6612 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
6613 l_rec_acct_attrs.array_num_value(26) := p_source_36;
6614 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
6615 l_rec_acct_attrs.array_char_value(27) := p_source_37;
6616 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
6617 l_rec_acct_attrs.array_num_value(28) := p_source_28;
6618 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
6619 l_rec_acct_attrs.array_char_value(29) := p_source_31;
6620 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
6621 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
6622 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
6623 l_rec_acct_attrs.array_char_value(31) := p_source_22;
6624 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
6625 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
6626 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
6627 l_rec_acct_attrs.array_num_value(33) := p_source_32;
6628 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
6629 l_rec_acct_attrs.array_num_value(34) := p_source_32;
6630
6631 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6632 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6633
6634 ---------------------------------------------------------------------------------------------------------------
6635 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6636 ---------------------------------------------------------------------------------------------------------------
6637 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6638
6639 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6640 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6641
6642 IF xla_accounting_cache_pkg.GetValueChar
6643 (p_source_code => 'LEDGER_CATEGORY_CODE'
6644 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6645 AND l_bflow_method_code = 'PRIOR_ENTRY'
6646 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6647 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6648 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6649 )
6650 THEN
6651 xla_ae_lines_pkg.BflowUpgEntry
6652 (p_business_method_code => l_bflow_method_code
6653 ,p_business_class_code => l_bflow_class_code
6654 ,p_balance_type => l_balance_type_code);
6655 ELSE
6656 NULL;
6657 -- No business flow processing for business flow method of NONE.
6658 END IF;
6659
6660 --
6661 -- call analytical criteria
6662 --
6663
6664 --
6665 -- call description
6666 --
6667
6668 xla_ae_lines_pkg.SetLineDescription(
6669 p_ae_header_id => l_ae_header_id
6670 ,p_description => Description_2 (
6671 p_application_id => p_application_id
6672 , p_ae_header_id => l_ae_header_id
6673 , p_source_3 => p_source_3
6674 )
6675 );
6676
6677
6678 --
6679 -- call ADRs
6680 -- Bug 4922099
6681 --
6682 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6683 (NVL(l_actual_upg_option, 'N') = 'O') OR
6684 (NVL(l_enc_upg_option, 'N') = 'O')
6685 )
6686 THEN
6687 NULL;
6688 --
6689 --
6690
6691 l_ccid := AcctDerRule_9(
6692 p_application_id => p_application_id
6693 , p_ae_header_id => l_ae_header_id
6694 , p_source_9 => p_source_9
6695 , x_transaction_coa_id => l_adr_transaction_coa_id
6696 , x_accounting_coa_id => l_adr_accounting_coa_id
6697 , x_value_type_code => l_adr_value_type_code
6698 , p_side => 'NA'
6699 );
6700
6701 xla_ae_lines_pkg.set_ccid(
6702 p_code_combination_id => l_ccid
6703 , p_value_type_code => l_adr_value_type_code
6704 , p_transaction_coa_id => l_adr_transaction_coa_id
6705 , p_accounting_coa_id => l_adr_accounting_coa_id
6706 , p_adr_code => 'FV_ACCOUNT_RULE'
6707 , p_adr_type_code => 'S'
6708 , p_component_type => l_component_type
6709 , p_component_code => l_component_code
6710 , p_component_type_code => l_component_type_code
6711 , p_component_appl_id => l_component_appl_id
6712 , p_amb_context_code => l_amb_context_code
6713 , p_side => 'NA'
6714 );
6715
6716
6717 l_segment := AcctDerRule_6(
6718 p_application_id => p_application_id
6719 , p_ae_header_id => l_ae_header_id
6720 , p_source_7 => p_source_7
6721 , x_transaction_coa_id => l_adr_transaction_coa_id
6722 , x_accounting_coa_id => l_adr_accounting_coa_id
6723 , x_flexfield_segment_code => l_adr_flexfield_segment_code
6724 , x_flex_value_set_id => l_adr_flex_value_set_id
6725 , x_value_type_code => l_adr_value_type_code
6726 , x_value_combination_id => l_adr_value_combination_id
6727 , x_value_segment_code => l_adr_value_segment_code
6728 , p_side => 'NA'
6729 , p_override_seg_flag => 'Y'
6730 );
6731
6732 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
6733
6734 xla_ae_lines_pkg.set_segment(
6735 p_to_segment_code => 'GL_ACCOUNT'
6736 , p_segment_value => l_segment
6737 , p_from_segment_code => l_adr_value_segment_code
6738 , p_from_combination_id => l_adr_value_combination_id
6739 , p_value_type_code => l_adr_value_type_code
6740 , p_transaction_coa_id => l_adr_transaction_coa_id
6741 , p_accounting_coa_id => l_adr_accounting_coa_id
6742 , p_flexfield_segment_code => l_adr_flexfield_segment_code
6743 , p_flex_value_set_id => l_adr_flex_value_set_id
6744 , p_adr_code => 'FV_47X002_REQUISITION'
6745 , p_adr_type_code => 'S'
6746 , p_component_type => l_component_type
6747 , p_component_code => l_component_code
6748 , p_component_type_code => l_component_type_code
6749 , p_component_appl_id => l_component_appl_id
6750 , p_amb_context_code => l_amb_context_code
6751 , p_entity_code => 'PURCHASE_ORDER'
6752 , p_event_class_code => 'PO_PA'
6753 , p_side => 'NA'
6754 );
6755
6756 END IF;
6757
6758 --
6759 --
6760 END IF;
6761 --
6762 -- Bug 4922099
6763 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6764 (NVL(l_enc_upg_option, 'N') = 'O')
6765 ) AND
6766 (l_bflow_method_code = 'PRIOR_ENTRY')
6767 )
6768 THEN
6769 IF
6770 --
6771 1 = 2
6772 --
6773 THEN
6774 xla_accounting_err_pkg.build_message
6775 (p_appli_s_name => 'XLA'
6776 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6777 ,p_token_1 => 'LINE_NUMBER'
6778 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6779 ,p_token_2 => 'LINE_TYPE_NAME'
6780 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6781 l_component_type
6782 ,l_component_code
6783 ,l_component_type_code
6784 ,l_component_appl_id
6785 ,l_amb_context_code
6786 ,l_entity_code
6787 ,l_event_class_code
6788 )
6789 ,p_token_3 => 'OWNER'
6790 ,p_value_3 => xla_lookups_pkg.get_meaning(
6791 p_lookup_type => 'XLA_OWNER_TYPE'
6792 ,p_lookup_code => l_component_type_code
6793 )
6794 ,p_token_4 => 'PRODUCT_NAME'
6795 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6796 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6797 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6798 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6799 ,p_ae_header_id => NULL
6800 );
6801
6802 IF (C_LEVEL_ERROR>= g_log_level) THEN
6803 trace
6804 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6805 ,p_level => C_LEVEL_ERROR
6806 ,p_module => l_log_module);
6807 END IF;
6808 END IF;
6809 END IF;
6810 --
6811 --
6812 ------------------------------------------------------------------------------------------------
6813 -- 4219869 Business Flow
6814 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6815 -- Prior Entry. Currently, the following code is always generated.
6816 ------------------------------------------------------------------------------------------------
6817 XLA_AE_LINES_PKG.ValidateCurrentLine;
6818
6819 ------------------------------------------------------------------------------------
6820 -- 4219869 Business Flow
6824
6821 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6822 ------------------------------------------------------------------------------------
6823 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6825 ----------------------------------------------------------------------------------
6826 -- 4219869 Business Flow
6827 -- Update journal entry status -- Need to generate this within IF <condition>
6828 ----------------------------------------------------------------------------------
6829 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6830 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6831 ,p_balance_type_code => l_balance_type_code
6832 );
6833
6834 -------------------------------------------------------------------------------------------
6835 -- 4262811 - Generate the Accrual Reversal lines
6836 -------------------------------------------------------------------------------------------
6837 BEGIN
6838 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6839 (g_array_event(p_event_id).array_value_num('header_index'));
6840 IF l_acc_rev_flag IS NULL THEN
6841 l_acc_rev_flag := 'N';
6842 END IF;
6843 EXCEPTION
6844 WHEN OTHERS THEN
6845 l_acc_rev_flag := 'N';
6846 END;
6847 --
6848 IF (l_acc_rev_flag = 'Y') THEN
6849
6850 -- 4645092 ------------------------------------------------------------------------------
6851 -- To allow MPA report to determine if it should generate report process
6852 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6853 ------------------------------------------------------------------------------------------
6854
6855 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6856 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6857
6858 --
6859 -- Update the line information that should be overwritten
6860 --
6861 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6862 p_header_num => 1);
6863 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6864
6865 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6866
6867 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6868 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6869 END IF;
6870
6871 --
6872 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6873 --
6874 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6875 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6876 ELSE
6877 ---------------------------------------------------------------------------------------------------
6878 -- 4262811a Switch Sign
6879 ---------------------------------------------------------------------------------------------------
6880 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6881 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6882 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6883 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6884 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6885 -- 5132302
6886 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6887 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6888
6889 END IF;
6890
6891 -- 4955764
6892 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6893 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6894
6895
6896 XLA_AE_LINES_PKG.ValidateCurrentLine;
6897 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6898
6899 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6900 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6901 ,p_balance_type_code => l_balance_type_code);
6902
6903 END IF;
6904
6905 -----------------------------------------------------------------------------------------
6906 -- 4262811 Multiperiod Accounting
6907 -----------------------------------------------------------------------------------------
6908 -- No MPA option is assigned.
6909
6910
6911 END IF;
6912 END IF;
6913 --
6914
6915 --
6916 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6917 trace
6918 (p_msg => 'END of AcctLineType_21'
6919 ,p_level => C_LEVEL_PROCEDURE
6920 ,p_module => l_log_module);
6921 END IF;
6922 --
6923 EXCEPTION
6924 WHEN xla_exceptions_pkg.application_exception THEN
6925 RAISE;
6926 WHEN OTHERS THEN
6927 xla_exceptions_pkg.raise_message
6928 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_21');
6929 END AcctLineType_21;
6930 --
6931
6932 ---------------------------------------
6933 --
6934 -- PRIVATE FUNCTION
6935 -- AcctLineType_22
6936 --
6937 ---------------------------------------
6938 PROCEDURE AcctLineType_22 (
6939 p_application_id IN NUMBER
6940 ,p_event_id IN NUMBER
6941 ,p_calculate_acctd_flag IN VARCHAR2
6945 ,p_gain_or_loss_ref OUT VARCHAR2
6942 ,p_calculate_g_l_flag IN VARCHAR2
6943 ,p_actual_flag IN OUT VARCHAR2
6944 ,p_balance_type_code OUT VARCHAR2
6946
6947 --Journal entry Line Description
6948 , p_source_3 IN VARCHAR2
6949 --Budget Account
6950 , p_source_9 IN NUMBER
6951 --Federal Prior Year Flag
6952 , p_source_10 IN VARCHAR2
6953 --Main Or Backing Code
6954 , p_source_13 IN VARCHAR2
6955 --PO Distribution Type
6956 , p_source_14 IN VARCHAR2
6957 --Accounting Reversal Flag
6958 , p_source_15 IN VARCHAR2
6959 --Distribution Link Type
6960 , p_source_17 IN VARCHAR2
6961 --PO Distribution Identifier
6962 , p_source_19 IN NUMBER
6963 --PO Header Identifier
6964 , p_source_20 IN NUMBER
6965 --Applied To Application Identifier
6966 , p_source_21 IN NUMBER
6967 --Applied To Distribution Link Type
6968 , p_source_22 IN VARCHAR2
6969 --Applied To Entity Code
6970 , p_source_23 IN VARCHAR2
6971 --Applied To Distribution Identifier 1
6972 , p_source_24 IN NUMBER
6973 --Applied To Header Identifier 1
6974 , p_source_25 IN NUMBER
6975 --Entered Amount
6976 , p_source_26 IN NUMBER
6977 --Currency Code
6978 , p_source_27 IN VARCHAR2
6979 --Accounted Amount
6980 , p_source_28 IN NUMBER
6981 --PO Encumbrance Upgrade Option
6982 , p_source_29 IN VARCHAR2
6983 --JFMIP Reference
6984 , p_source_31 IN VARCHAR2
6985 --PO Upgrade Encumbrance Type Identifier
6986 , p_source_32 IN NUMBER
6987 --Currency Conversion Date
6988 , p_source_35 IN DATE
6989 --Currency Conversion Rate
6990 , p_source_36 IN NUMBER
6991 --Currency Conversion Type
6992 , p_source_37 IN VARCHAR2
6993 )
6994 IS
6995
6996 l_component_type VARCHAR2(80);
6997 l_component_code VARCHAR2(30);
6998 l_component_type_code VARCHAR2(1);
6999 l_component_appl_id INTEGER;
7000 l_amb_context_code VARCHAR2(30);
7001 l_entity_code VARCHAR2(30);
7002 l_event_class_code VARCHAR2(30);
7003 l_ae_header_id NUMBER;
7004 l_event_type_code VARCHAR2(30);
7005 l_line_definition_code VARCHAR2(30);
7006 l_line_definition_owner_code VARCHAR2(1);
7007 --
7008 -- adr variables
7009 l_segment VARCHAR2(30);
7010 l_ccid NUMBER;
7011 l_adr_transaction_coa_id NUMBER;
7012 l_adr_accounting_coa_id NUMBER;
7013 l_adr_flexfield_segment_code VARCHAR2(30);
7014 l_adr_flex_value_set_id NUMBER;
7015 l_adr_value_type_code VARCHAR2(30);
7016 l_adr_value_combination_id NUMBER;
7017 l_adr_value_segment_code VARCHAR2(30);
7018
7019 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7020 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7021 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7022 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7023
7024 -- 4262811 Variables ------------------------------------------------------------------------------------------
7025 l_entered_amt_idx NUMBER;
7026 l_accted_amt_idx NUMBER;
7027 l_acc_rev_flag VARCHAR2(1);
7028 l_accrual_line_num NUMBER;
7029 l_tmp_amt NUMBER;
7030 l_acc_rev_natural_side_code VARCHAR2(1);
7031
7032 l_num_entries NUMBER;
7033 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7034 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7035 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7036 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7037 l_recog_line_1 NUMBER;
7038 l_recog_line_2 NUMBER;
7039
7040 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7041 l_bflow_applied_to_amt NUMBER; -- 5132302
7042 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7043
7044 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7045
7046 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7047 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7048
7049 ---------------------------------------------------------------------------------------------------------------
7050
7051
7052 --
7053 -- bulk performance
7054 --
7055 l_balance_type_code VARCHAR2(1);
7056 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7057 l_log_module VARCHAR2(240);
7058
7059 --
7060 -- Upgrade strategy
7061 --
7062 l_actual_upg_option VARCHAR2(1);
7063 l_enc_upg_option VARCHAR2(1);
7064
7065 --
7066 BEGIN
7067 --
7068 IF g_log_enabled THEN
7069 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_22';
7070 END IF;
7071 --
7072 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7073
7074 trace
7075 (p_msg => 'BEGIN of AcctLineType_22'
7076 ,p_level => C_LEVEL_PROCEDURE
7077 ,p_module => l_log_module);
7078
7079 END IF;
7080 --
7081 l_component_type := 'AMB_JLT';
7082 l_component_code := 'FV_PO_PA_RESERVE_CR';
7083 l_component_type_code := 'S';
7084 l_component_appl_id := 201;
7085 l_amb_context_code := 'DEFAULT';
7089 l_line_definition_owner_code := 'S';
7086 l_entity_code := 'PURCHASE_ORDER';
7087 l_event_class_code := 'PO_PA';
7088 l_event_type_code := 'PO_PA_ALL';
7090 l_line_definition_code := 'FV_PO_ALL';
7091 --
7092 l_balance_type_code := 'A';
7093 l_segment := NULL;
7094 l_ccid := NULL;
7095 l_adr_transaction_coa_id := NULL;
7096 l_adr_accounting_coa_id := NULL;
7097 l_adr_flexfield_segment_code := NULL;
7098 l_adr_flex_value_set_id := NULL;
7099 l_adr_value_type_code := NULL;
7100 l_adr_value_combination_id := NULL;
7101 l_adr_value_segment_code := NULL;
7102
7103 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7104 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
7105 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7106 l_budgetary_control_flag := 'Y';
7107
7108 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7109 l_bflow_applied_to_amt := NULL; -- 5132302
7110 l_entered_amt_idx := NULL; -- 4262811
7111 l_accted_amt_idx := NULL; -- 4262811
7112 l_acc_rev_flag := NULL; -- 4262811
7113 l_accrual_line_num := NULL; -- 4262811
7114 l_tmp_amt := NULL; -- 4262811
7115 --
7116
7117 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7118 l_balance_type_code <> 'B' THEN
7119 IF NVL(
7120 xla_ae_sources_pkg.GetSystemSourceChar(
7121 p_source_code => 'XLA_EVENT_TYPE_CODE'
7122 , p_source_type_code => 'Y'
7123 , p_source_application_id => 602
7124 ),'
7125 ') = 'PO_PA_RESERVED' AND
7126 NVL(p_source_13,'
7127 ') = 'M' AND
7128 (NVL(p_source_14,'
7129 ') <> 'AGREEMENT' OR
7130 p_source_14 IS NULL ) AND
7131 NVL(p_source_10,'
7132 ') = 'N'
7133 THEN
7134
7135 --
7136 XLA_AE_LINES_PKG.SetNewLine;
7137
7138 p_balance_type_code := l_balance_type_code;
7139 -- set the flag so later we will know whether the gain loss line needs to be created
7140
7141 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7142 p_actual_flag :='A';
7143 END IF;
7144
7145 --
7146 -- bulk performance
7147 --
7148 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7149 p_header_num => 0); -- 4262811
7150 --
7151 -- set accounting line options
7152 --
7153 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7154 p_natural_side_code => 'C'
7155 , p_gain_or_loss_flag => 'N'
7156 , p_gl_transfer_mode_code => 'S'
7157 , p_acct_entry_type_code => 'A'
7158 , p_switch_side_flag => 'N'
7159 , p_merge_duplicate_code => 'N'
7160 );
7161 --
7162 l_acc_rev_natural_side_code := 'D'; -- 4262811
7163 --
7164 --
7165 -- set accounting line type info
7166 --
7167 xla_ae_lines_pkg.SetAcctLineType
7168 (p_component_type => l_component_type
7169 ,p_event_type_code => l_event_type_code
7170 ,p_line_definition_owner_code => l_line_definition_owner_code
7171 ,p_line_definition_code => l_line_definition_code
7172 ,p_accounting_line_code => l_component_code
7173 ,p_accounting_line_type_code => l_component_type_code
7174 ,p_accounting_line_appl_id => l_component_appl_id
7175 ,p_amb_context_code => l_amb_context_code
7176 ,p_entity_code => l_entity_code
7177 ,p_event_class_code => l_event_class_code);
7178 --
7179 -- set accounting class
7180 --
7181 xla_ae_lines_pkg.SetAcctClass(
7182 p_accounting_class_code => 'PURCHASE_ORDER'
7183 , p_ae_header_id => l_ae_header_id
7184 );
7185
7186 --
7187 -- set rounding class
7188 --
7189 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7190 'PURCHASE_ORDER';
7191
7192 --
7193 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7194 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7195 --
7196 -- bulk performance
7197 --
7198 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7199
7200 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7201 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7202
7203 -- 4955764
7204 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7205 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7206
7207 -- 4458381 Public Sector Enh
7208
7209 --
7210 -- set accounting attributes for the line type
7211 --
7212 l_entered_amt_idx := 23;
7213 l_accted_amt_idx := 28;
7214 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7215 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7216 l_rec_acct_attrs.array_char_value(1) := p_source_15;
7217 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7218 l_rec_acct_attrs.array_num_value(2) :=
7219 xla_ae_sources_pkg.GetSystemSourceNum(
7220 p_source_code => 'XLA_EVENT_APPL_ID'
7221 , p_source_type_code => 'Y'
7222 , p_source_application_id => 602
7223 );
7224 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7225 l_rec_acct_attrs.array_char_value(3) := p_source_17;
7226 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7227 l_rec_acct_attrs.array_char_value(4) :=
7228 xla_ae_sources_pkg.GetSystemSourceChar(
7229 p_source_code => 'XLA_ENTITY_CODE'
7230 , p_source_type_code => 'Y'
7231 , p_source_application_id => 602
7232 );
7233 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7234 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
7235 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7236 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
7237 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7238 l_rec_acct_attrs.array_num_value(7) := p_source_21;
7239 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7240 l_rec_acct_attrs.array_char_value(8) := p_source_22;
7241 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7242 l_rec_acct_attrs.array_char_value(9) := p_source_23;
7243 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7244 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
7245 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7246 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
7247 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7248 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
7249 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7250 l_rec_acct_attrs.array_char_value(13) := p_source_17;
7251 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
7252 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
7253 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
7254 l_rec_acct_attrs.array_num_value(15) := p_source_26;
7255 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
7256 l_rec_acct_attrs.array_char_value(16) := p_source_27;
7257 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
7258 l_rec_acct_attrs.array_num_value(17) := p_source_28;
7259 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
7260 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
7261 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
7262 l_rec_acct_attrs.array_num_value(19) := p_source_26;
7263 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
7264 l_rec_acct_attrs.array_char_value(20) := p_source_27;
7265 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
7266 l_rec_acct_attrs.array_num_value(21) := p_source_28;
7267 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
7268 l_rec_acct_attrs.array_char_value(22) := p_source_29;
7269 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
7270 l_rec_acct_attrs.array_num_value(23) := p_source_26;
7271 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
7272 l_rec_acct_attrs.array_char_value(24) := p_source_27;
7273 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
7274 l_rec_acct_attrs.array_date_value(25) := p_source_35;
7275 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
7276 l_rec_acct_attrs.array_num_value(26) := p_source_36;
7277 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
7278 l_rec_acct_attrs.array_char_value(27) := p_source_37;
7279 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
7280 l_rec_acct_attrs.array_num_value(28) := p_source_28;
7281 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
7282 l_rec_acct_attrs.array_char_value(29) := p_source_31;
7283 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
7284 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
7285 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
7286 l_rec_acct_attrs.array_char_value(31) := p_source_22;
7287 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
7288 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
7289 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
7290 l_rec_acct_attrs.array_num_value(33) := p_source_32;
7291 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
7292 l_rec_acct_attrs.array_num_value(34) := p_source_32;
7293
7294 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7295 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7296
7297 ---------------------------------------------------------------------------------------------------------------
7298 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7299 ---------------------------------------------------------------------------------------------------------------
7300 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7301
7302 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7303 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7304
7305 IF xla_accounting_cache_pkg.GetValueChar
7306 (p_source_code => 'LEDGER_CATEGORY_CODE'
7307 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7308 AND l_bflow_method_code = 'PRIOR_ENTRY'
7309 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7310 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7311 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7312 )
7313 THEN
7314 xla_ae_lines_pkg.BflowUpgEntry
7315 (p_business_method_code => l_bflow_method_code
7316 ,p_business_class_code => l_bflow_class_code
7317 ,p_balance_type => l_balance_type_code);
7318 ELSE
7319 NULL;
7320 -- No business flow processing for business flow method of NONE.
7321 END IF;
7322
7323 --
7324 -- call analytical criteria
7325 --
7326
7327 --
7328 -- call description
7329 --
7330
7331 xla_ae_lines_pkg.SetLineDescription(
7332 p_ae_header_id => l_ae_header_id
7333 ,p_description => Description_2 (
7334 p_application_id => p_application_id
7335 , p_ae_header_id => l_ae_header_id
7336 , p_source_3 => p_source_3
7337 )
7338 );
7339
7340
7341 --
7342 -- call ADRs
7343 -- Bug 4922099
7344 --
7345 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7346 (NVL(l_actual_upg_option, 'N') = 'O') OR
7347 (NVL(l_enc_upg_option, 'N') = 'O')
7348 )
7349 THEN
7350 NULL;
7351 --
7352 --
7353
7354 l_ccid := AcctDerRule_9(
7355 p_application_id => p_application_id
7356 , p_ae_header_id => l_ae_header_id
7357 , p_source_9 => p_source_9
7358 , x_transaction_coa_id => l_adr_transaction_coa_id
7359 , x_accounting_coa_id => l_adr_accounting_coa_id
7360 , x_value_type_code => l_adr_value_type_code
7361 , p_side => 'NA'
7362 );
7363
7364 xla_ae_lines_pkg.set_ccid(
7365 p_code_combination_id => l_ccid
7366 , p_value_type_code => l_adr_value_type_code
7367 , p_transaction_coa_id => l_adr_transaction_coa_id
7371 , p_component_type => l_component_type
7368 , p_accounting_coa_id => l_adr_accounting_coa_id
7369 , p_adr_code => 'FV_ACCOUNT_RULE'
7370 , p_adr_type_code => 'S'
7372 , p_component_code => l_component_code
7373 , p_component_type_code => l_component_type_code
7374 , p_component_appl_id => l_component_appl_id
7375 , p_amb_context_code => l_amb_context_code
7376 , p_side => 'NA'
7377 );
7378
7379
7380 l_segment := AcctDerRule_8(
7381 p_application_id => p_application_id
7382 , p_ae_header_id => l_ae_header_id
7383 , x_transaction_coa_id => l_adr_transaction_coa_id
7384 , x_accounting_coa_id => l_adr_accounting_coa_id
7385 , x_flexfield_segment_code => l_adr_flexfield_segment_code
7386 , x_flex_value_set_id => l_adr_flex_value_set_id
7387 , x_value_type_code => l_adr_value_type_code
7388 , x_value_combination_id => l_adr_value_combination_id
7389 , x_value_segment_code => l_adr_value_segment_code
7390 , p_side => 'NA'
7391 , p_override_seg_flag => 'Y'
7392 );
7393
7394 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
7395
7396 xla_ae_lines_pkg.set_segment(
7397 p_to_segment_code => 'GL_ACCOUNT'
7398 , p_segment_value => l_segment
7399 , p_from_segment_code => l_adr_value_segment_code
7400 , p_from_combination_id => l_adr_value_combination_id
7401 , p_value_type_code => l_adr_value_type_code
7402 , p_transaction_coa_id => l_adr_transaction_coa_id
7403 , p_accounting_coa_id => l_adr_accounting_coa_id
7404 , p_flexfield_segment_code => l_adr_flexfield_segment_code
7405 , p_flex_value_set_id => l_adr_flex_value_set_id
7406 , p_adr_code => 'FV_48X101_PURCHASING'
7407 , p_adr_type_code => 'S'
7408 , p_component_type => l_component_type
7409 , p_component_code => l_component_code
7410 , p_component_type_code => l_component_type_code
7411 , p_component_appl_id => l_component_appl_id
7412 , p_amb_context_code => l_amb_context_code
7413 , p_entity_code => 'PURCHASE_ORDER'
7414 , p_event_class_code => 'PO_PA'
7415 , p_side => 'NA'
7416 );
7417
7418 END IF;
7419
7420 --
7421 --
7422 END IF;
7423 --
7424 -- Bug 4922099
7425 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7426 (NVL(l_enc_upg_option, 'N') = 'O')
7427 ) AND
7428 (l_bflow_method_code = 'PRIOR_ENTRY')
7429 )
7430 THEN
7431 IF
7432 --
7433 1 = 2
7434 --
7435 THEN
7436 xla_accounting_err_pkg.build_message
7437 (p_appli_s_name => 'XLA'
7438 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7439 ,p_token_1 => 'LINE_NUMBER'
7440 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7441 ,p_token_2 => 'LINE_TYPE_NAME'
7442 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7443 l_component_type
7444 ,l_component_code
7445 ,l_component_type_code
7446 ,l_component_appl_id
7447 ,l_amb_context_code
7448 ,l_entity_code
7449 ,l_event_class_code
7450 )
7451 ,p_token_3 => 'OWNER'
7452 ,p_value_3 => xla_lookups_pkg.get_meaning(
7453 p_lookup_type => 'XLA_OWNER_TYPE'
7454 ,p_lookup_code => l_component_type_code
7455 )
7456 ,p_token_4 => 'PRODUCT_NAME'
7457 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7458 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7459 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7460 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7461 ,p_ae_header_id => NULL
7462 );
7463
7464 IF (C_LEVEL_ERROR>= g_log_level) THEN
7465 trace
7466 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7467 ,p_level => C_LEVEL_ERROR
7468 ,p_module => l_log_module);
7469 END IF;
7470 END IF;
7471 END IF;
7472 --
7473 --
7474 ------------------------------------------------------------------------------------------------
7478 ------------------------------------------------------------------------------------------------
7475 -- 4219869 Business Flow
7476 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7477 -- Prior Entry. Currently, the following code is always generated.
7479 XLA_AE_LINES_PKG.ValidateCurrentLine;
7480
7481 ------------------------------------------------------------------------------------
7482 -- 4219869 Business Flow
7483 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7484 ------------------------------------------------------------------------------------
7485 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7486
7487 ----------------------------------------------------------------------------------
7488 -- 4219869 Business Flow
7489 -- Update journal entry status -- Need to generate this within IF <condition>
7490 ----------------------------------------------------------------------------------
7491 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7492 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7493 ,p_balance_type_code => l_balance_type_code
7494 );
7495
7496 -------------------------------------------------------------------------------------------
7497 -- 4262811 - Generate the Accrual Reversal lines
7498 -------------------------------------------------------------------------------------------
7499 BEGIN
7500 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7501 (g_array_event(p_event_id).array_value_num('header_index'));
7502 IF l_acc_rev_flag IS NULL THEN
7503 l_acc_rev_flag := 'N';
7504 END IF;
7505 EXCEPTION
7506 WHEN OTHERS THEN
7507 l_acc_rev_flag := 'N';
7508 END;
7509 --
7510 IF (l_acc_rev_flag = 'Y') THEN
7511
7512 -- 4645092 ------------------------------------------------------------------------------
7513 -- To allow MPA report to determine if it should generate report process
7514 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7515 ------------------------------------------------------------------------------------------
7516
7517 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7518 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7519
7520 --
7521 -- Update the line information that should be overwritten
7522 --
7523 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7524 p_header_num => 1);
7525 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7526
7527 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7528
7529 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7530 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7531 END IF;
7532
7533 --
7534 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7535 --
7536 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7537 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7538 ELSE
7539 ---------------------------------------------------------------------------------------------------
7540 -- 4262811a Switch Sign
7541 ---------------------------------------------------------------------------------------------------
7542 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7543 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7544 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7545 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7546 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7547 -- 5132302
7548 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7549 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7550
7551 END IF;
7552
7553 -- 4955764
7554 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7555 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7556
7557
7558 XLA_AE_LINES_PKG.ValidateCurrentLine;
7559 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7560
7561 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7562 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7563 ,p_balance_type_code => l_balance_type_code);
7564
7565 END IF;
7566
7567 -----------------------------------------------------------------------------------------
7568 -- 4262811 Multiperiod Accounting
7569 -----------------------------------------------------------------------------------------
7570 -- No MPA option is assigned.
7571
7572
7573 END IF;
7574 END IF;
7575 --
7576
7577 --
7578 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7579 trace
7580 (p_msg => 'END of AcctLineType_22'
7581 ,p_level => C_LEVEL_PROCEDURE
7582 ,p_module => l_log_module);
7583 END IF;
7584 --
7585 EXCEPTION
7586 WHEN xla_exceptions_pkg.application_exception THEN
7587 RAISE;
7588 WHEN OTHERS THEN
7589 xla_exceptions_pkg.raise_message
7590 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_22');
7591 END AcctLineType_22;
7592 --
7593
7594 ---------------------------------------
7595 --
7596 -- PRIVATE FUNCTION
7597 -- AcctLineType_23
7598 --
7599 ---------------------------------------
7600 PROCEDURE AcctLineType_23 (
7601 p_application_id IN NUMBER
7602 ,p_event_id IN NUMBER
7603 ,p_calculate_acctd_flag IN VARCHAR2
7604 ,p_calculate_g_l_flag IN VARCHAR2
7605 ,p_actual_flag IN OUT VARCHAR2
7606 ,p_balance_type_code OUT VARCHAR2
7607 ,p_gain_or_loss_ref OUT VARCHAR2
7608
7609 --Journal entry Line Description
7610 , p_source_3 IN VARCHAR2
7611 --Federal Fund Category
7612 , p_source_7 IN VARCHAR2
7613 --Federal Fund Expired Status
7614 , p_source_8 IN VARCHAR2
7615 --Budget Account
7616 , p_source_9 IN NUMBER
7617 --Federal Prior Year Flag
7618 , p_source_10 IN VARCHAR2
7619 --Main Or Backing Code
7620 , p_source_13 IN VARCHAR2
7621 --PO Distribution Type
7622 , p_source_14 IN VARCHAR2
7623 --Accounting Reversal Flag
7624 , p_source_15 IN VARCHAR2
7625 --Distribution Link Type
7626 , p_source_17 IN VARCHAR2
7627 --PO Distribution Identifier
7628 , p_source_19 IN NUMBER
7629 --PO Header Identifier
7630 , p_source_20 IN NUMBER
7631 --Applied To Application Identifier
7632 , p_source_21 IN NUMBER
7633 --Applied To Distribution Link Type
7634 , p_source_22 IN VARCHAR2
7635 --Applied To Entity Code
7636 , p_source_23 IN VARCHAR2
7637 --Applied To Distribution Identifier 1
7638 , p_source_24 IN NUMBER
7639 --Applied To Header Identifier 1
7640 , p_source_25 IN NUMBER
7641 --Entered Amount
7642 , p_source_26 IN NUMBER
7643 --Currency Code
7644 , p_source_27 IN VARCHAR2
7645 --Accounted Amount
7646 , p_source_28 IN NUMBER
7647 --PO Encumbrance Upgrade Option
7648 , p_source_29 IN VARCHAR2
7649 --JFMIP Reference
7650 , p_source_31 IN VARCHAR2
7651 --PO Upgrade Encumbrance Type Identifier
7652 , p_source_32 IN NUMBER
7653 --Currency Conversion Date
7654 , p_source_35 IN DATE
7655 --Currency Conversion Rate
7656 , p_source_36 IN NUMBER
7657 --Currency Conversion Type
7658 , p_source_37 IN VARCHAR2
7659 )
7660 IS
7661
7662 l_component_type VARCHAR2(80);
7663 l_component_code VARCHAR2(30);
7664 l_component_type_code VARCHAR2(1);
7665 l_component_appl_id INTEGER;
7666 l_amb_context_code VARCHAR2(30);
7667 l_entity_code VARCHAR2(30);
7668 l_event_class_code VARCHAR2(30);
7669 l_ae_header_id NUMBER;
7670 l_event_type_code VARCHAR2(30);
7671 l_line_definition_code VARCHAR2(30);
7672 l_line_definition_owner_code VARCHAR2(1);
7673 --
7674 -- adr variables
7675 l_segment VARCHAR2(30);
7676 l_ccid NUMBER;
7677 l_adr_transaction_coa_id NUMBER;
7678 l_adr_accounting_coa_id NUMBER;
7679 l_adr_flexfield_segment_code VARCHAR2(30);
7680 l_adr_flex_value_set_id NUMBER;
7681 l_adr_value_type_code VARCHAR2(30);
7682 l_adr_value_combination_id NUMBER;
7683 l_adr_value_segment_code VARCHAR2(30);
7684
7685 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7686 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7687 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7688 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7689
7690 -- 4262811 Variables ------------------------------------------------------------------------------------------
7691 l_entered_amt_idx NUMBER;
7692 l_accted_amt_idx NUMBER;
7693 l_acc_rev_flag VARCHAR2(1);
7694 l_accrual_line_num NUMBER;
7695 l_tmp_amt NUMBER;
7696 l_acc_rev_natural_side_code VARCHAR2(1);
7697
7698 l_num_entries NUMBER;
7699 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7700 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7701 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7702 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7703 l_recog_line_1 NUMBER;
7704 l_recog_line_2 NUMBER;
7705
7706 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7707 l_bflow_applied_to_amt NUMBER; -- 5132302
7708 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7709
7710 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7711
7712 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7713 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7714
7715 ---------------------------------------------------------------------------------------------------------------
7716
7717
7718 --
7719 -- bulk performance
7720 --
7721 l_balance_type_code VARCHAR2(1);
7722 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7723 l_log_module VARCHAR2(240);
7724
7725 --
7726 -- Upgrade strategy
7727 --
7728 l_actual_upg_option VARCHAR2(1);
7729 l_enc_upg_option VARCHAR2(1);
7730
7731 --
7732 BEGIN
7733 --
7734 IF g_log_enabled THEN
7735 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_23';
7736 END IF;
7737 --
7738 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7739
7740 trace
7741 (p_msg => 'BEGIN of AcctLineType_23'
7742 ,p_level => C_LEVEL_PROCEDURE
7743 ,p_module => l_log_module);
7744
7745 END IF;
7746 --
7747 l_component_type := 'AMB_JLT';
7748 l_component_code := 'FV_PO_PA_RESERVE_DR';
7749 l_component_type_code := 'S';
7750 l_component_appl_id := 201;
7751 l_amb_context_code := 'DEFAULT';
7752 l_entity_code := 'PURCHASE_ORDER';
7753 l_event_class_code := 'PO_PA';
7754 l_event_type_code := 'PO_PA_ALL';
7755 l_line_definition_owner_code := 'S';
7756 l_line_definition_code := 'FV_PO_ALL';
7757 --
7758 l_balance_type_code := 'A';
7759 l_segment := NULL;
7760 l_ccid := NULL;
7761 l_adr_transaction_coa_id := NULL;
7762 l_adr_accounting_coa_id := NULL;
7763 l_adr_flexfield_segment_code := NULL;
7764 l_adr_flex_value_set_id := NULL;
7765 l_adr_value_type_code := NULL;
7766 l_adr_value_combination_id := NULL;
7767 l_adr_value_segment_code := NULL;
7768
7769 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7770 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
7771 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7772 l_budgetary_control_flag := 'Y';
7773
7774 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7775 l_bflow_applied_to_amt := NULL; -- 5132302
7776 l_entered_amt_idx := NULL; -- 4262811
7777 l_accted_amt_idx := NULL; -- 4262811
7778 l_acc_rev_flag := NULL; -- 4262811
7779 l_accrual_line_num := NULL; -- 4262811
7780 l_tmp_amt := NULL; -- 4262811
7781 --
7782
7783 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7784 l_balance_type_code <> 'B' THEN
7785 IF NVL(
7786 xla_ae_sources_pkg.GetSystemSourceChar(
7787 p_source_code => 'XLA_EVENT_TYPE_CODE'
7788 , p_source_type_code => 'Y'
7789 , p_source_application_id => 602
7790 ),'
7791 ') = 'PO_PA_RESERVED' AND
7792 NVL(p_source_13,'
7793 ') = 'M' AND
7794 (NVL(p_source_14,'
7795 ') <> 'AGREEMENT' OR
7796 p_source_14 IS NULL ) AND
7797 NVL(p_source_10,'
7798 ') = 'N'
7799 THEN
7800
7801 --
7802 XLA_AE_LINES_PKG.SetNewLine;
7803
7804 p_balance_type_code := l_balance_type_code;
7805 -- set the flag so later we will know whether the gain loss line needs to be created
7806
7807 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7808 p_actual_flag :='A';
7809 END IF;
7810
7811 --
7812 -- bulk performance
7813 --
7814 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7815 p_header_num => 0); -- 4262811
7816 --
7817 -- set accounting line options
7818 --
7819 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7820 p_natural_side_code => 'D'
7821 , p_gain_or_loss_flag => 'N'
7822 , p_gl_transfer_mode_code => 'S'
7823 , p_acct_entry_type_code => 'A'
7824 , p_switch_side_flag => 'N'
7825 , p_merge_duplicate_code => 'N'
7826 );
7827 --
7828 l_acc_rev_natural_side_code := 'C'; -- 4262811
7829 --
7830 --
7831 -- set accounting line type info
7832 --
7833 xla_ae_lines_pkg.SetAcctLineType
7834 (p_component_type => l_component_type
7835 ,p_event_type_code => l_event_type_code
7836 ,p_line_definition_owner_code => l_line_definition_owner_code
7837 ,p_line_definition_code => l_line_definition_code
7838 ,p_accounting_line_code => l_component_code
7839 ,p_accounting_line_type_code => l_component_type_code
7840 ,p_accounting_line_appl_id => l_component_appl_id
7841 ,p_amb_context_code => l_amb_context_code
7842 ,p_entity_code => l_entity_code
7843 ,p_event_class_code => l_event_class_code);
7844 --
7845 -- set accounting class
7846 --
7847 xla_ae_lines_pkg.SetAcctClass(
7848 p_accounting_class_code => 'PURCHASE_ORDER'
7849 , p_ae_header_id => l_ae_header_id
7850 );
7851
7852 --
7853 -- set rounding class
7854 --
7855 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7856 'PURCHASE_ORDER';
7857
7858 --
7859 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7860 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7861 --
7862 -- bulk performance
7863 --
7864 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7865
7866 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7867 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7868
7869 -- 4955764
7870 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7871 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7872
7873 -- 4458381 Public Sector Enh
7874
7875 --
7876 -- set accounting attributes for the line type
7877 --
7878 l_entered_amt_idx := 23;
7879 l_accted_amt_idx := 28;
7880 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7881 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7882 l_rec_acct_attrs.array_char_value(1) := p_source_15;
7883 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7884 l_rec_acct_attrs.array_num_value(2) :=
7885 xla_ae_sources_pkg.GetSystemSourceNum(
7886 p_source_code => 'XLA_EVENT_APPL_ID'
7887 , p_source_type_code => 'Y'
7888 , p_source_application_id => 602
7889 );
7890 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7891 l_rec_acct_attrs.array_char_value(3) := p_source_17;
7892 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7893 l_rec_acct_attrs.array_char_value(4) :=
7894 xla_ae_sources_pkg.GetSystemSourceChar(
7895 p_source_code => 'XLA_ENTITY_CODE'
7896 , p_source_type_code => 'Y'
7897 , p_source_application_id => 602
7898 );
7899 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7900 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
7901 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7902 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
7903 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7904 l_rec_acct_attrs.array_num_value(7) := p_source_21;
7905 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7906 l_rec_acct_attrs.array_char_value(8) := p_source_22;
7907 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7908 l_rec_acct_attrs.array_char_value(9) := p_source_23;
7909 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7910 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
7911 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7912 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
7913 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7914 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
7915 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7916 l_rec_acct_attrs.array_char_value(13) := p_source_17;
7917 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
7918 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
7919 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
7920 l_rec_acct_attrs.array_num_value(15) := p_source_26;
7921 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
7922 l_rec_acct_attrs.array_char_value(16) := p_source_27;
7923 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
7924 l_rec_acct_attrs.array_num_value(17) := p_source_28;
7925 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
7926 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
7927 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
7928 l_rec_acct_attrs.array_num_value(19) := p_source_26;
7929 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
7930 l_rec_acct_attrs.array_char_value(20) := p_source_27;
7931 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
7932 l_rec_acct_attrs.array_num_value(21) := p_source_28;
7933 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
7934 l_rec_acct_attrs.array_char_value(22) := p_source_29;
7935 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
7936 l_rec_acct_attrs.array_num_value(23) := p_source_26;
7937 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
7938 l_rec_acct_attrs.array_char_value(24) := p_source_27;
7939 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
7940 l_rec_acct_attrs.array_date_value(25) := p_source_35;
7941 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
7942 l_rec_acct_attrs.array_num_value(26) := p_source_36;
7943 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
7944 l_rec_acct_attrs.array_char_value(27) := p_source_37;
7945 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
7946 l_rec_acct_attrs.array_num_value(28) := p_source_28;
7947 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
7948 l_rec_acct_attrs.array_char_value(29) := p_source_31;
7949 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
7950 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
7951 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
7952 l_rec_acct_attrs.array_char_value(31) := p_source_22;
7953 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
7954 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
7955 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
7956 l_rec_acct_attrs.array_num_value(33) := p_source_32;
7957 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
7958 l_rec_acct_attrs.array_num_value(34) := p_source_32;
7959
7960 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7961 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7962
7963 ---------------------------------------------------------------------------------------------------------------
7964 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7965 ---------------------------------------------------------------------------------------------------------------
7966 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7967
7968 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7969 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7970
7971 IF xla_accounting_cache_pkg.GetValueChar
7972 (p_source_code => 'LEDGER_CATEGORY_CODE'
7973 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7974 AND l_bflow_method_code = 'PRIOR_ENTRY'
7975 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7976 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7977 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7978 )
7979 THEN
7980 xla_ae_lines_pkg.BflowUpgEntry
7981 (p_business_method_code => l_bflow_method_code
7982 ,p_business_class_code => l_bflow_class_code
7983 ,p_balance_type => l_balance_type_code);
7984 ELSE
7985 NULL;
7986 -- No business flow processing for business flow method of NONE.
7987 END IF;
7988
7989 --
7990 -- call analytical criteria
7991 --
7992
7993 --
7994 -- call description
7995 --
7996
7997 xla_ae_lines_pkg.SetLineDescription(
7998 p_ae_header_id => l_ae_header_id
7999 ,p_description => Description_2 (
8000 p_application_id => p_application_id
8001 , p_ae_header_id => l_ae_header_id
8002 , p_source_3 => p_source_3
8003 )
8004 );
8005
8006
8007 --
8008 -- call ADRs
8009 -- Bug 4922099
8010 --
8011 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8012 (NVL(l_actual_upg_option, 'N') = 'O') OR
8013 (NVL(l_enc_upg_option, 'N') = 'O')
8014 )
8015 THEN
8016 NULL;
8017 --
8018 --
8019
8020 l_ccid := AcctDerRule_9(
8021 p_application_id => p_application_id
8022 , p_ae_header_id => l_ae_header_id
8023 , p_source_9 => p_source_9
8024 , x_transaction_coa_id => l_adr_transaction_coa_id
8025 , x_accounting_coa_id => l_adr_accounting_coa_id
8026 , x_value_type_code => l_adr_value_type_code
8027 , p_side => 'NA'
8028 );
8029
8030 xla_ae_lines_pkg.set_ccid(
8031 p_code_combination_id => l_ccid
8032 , p_value_type_code => l_adr_value_type_code
8033 , p_transaction_coa_id => l_adr_transaction_coa_id
8034 , p_accounting_coa_id => l_adr_accounting_coa_id
8035 , p_adr_code => 'FV_ACCOUNT_RULE'
8036 , p_adr_type_code => 'S'
8037 , p_component_type => l_component_type
8038 , p_component_code => l_component_code
8039 , p_component_type_code => l_component_type_code
8040 , p_component_appl_id => l_component_appl_id
8041 , p_amb_context_code => l_amb_context_code
8042 , p_side => 'NA'
8043 );
8044
8045
8046 l_segment := AcctDerRule_5(
8047 p_application_id => p_application_id
8048 , p_ae_header_id => l_ae_header_id
8049 , p_source_7 => p_source_7
8050 , p_source_8 => p_source_8
8051 , x_transaction_coa_id => l_adr_transaction_coa_id
8052 , x_accounting_coa_id => l_adr_accounting_coa_id
8053 , x_flexfield_segment_code => l_adr_flexfield_segment_code
8054 , x_flex_value_set_id => l_adr_flex_value_set_id
8055 , x_value_type_code => l_adr_value_type_code
8056 , x_value_combination_id => l_adr_value_combination_id
8057 , x_value_segment_code => l_adr_value_segment_code
8058 , p_side => 'NA'
8059 , p_override_seg_flag => 'Y'
8060 );
8061
8062 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
8063
8064 xla_ae_lines_pkg.set_segment(
8065 p_to_segment_code => 'GL_ACCOUNT'
8066 , p_segment_value => l_segment
8067 , p_from_segment_code => l_adr_value_segment_code
8068 , p_from_combination_id => l_adr_value_combination_id
8069 , p_value_type_code => l_adr_value_type_code
8070 , p_transaction_coa_id => l_adr_transaction_coa_id
8071 , p_accounting_coa_id => l_adr_accounting_coa_id
8072 , p_flexfield_segment_code => l_adr_flexfield_segment_code
8073 , p_flex_value_set_id => l_adr_flex_value_set_id
8074 , p_adr_code => 'FV_46X002'
8075 , p_adr_type_code => 'S'
8076 , p_component_type => l_component_type
8077 , p_component_code => l_component_code
8078 , p_component_type_code => l_component_type_code
8079 , p_component_appl_id => l_component_appl_id
8080 , p_amb_context_code => l_amb_context_code
8081 , p_entity_code => 'PURCHASE_ORDER'
8082 , p_event_class_code => 'PO_PA'
8083 , p_side => 'NA'
8084 );
8085
8086 END IF;
8087
8088 --
8089 --
8090 END IF;
8091 --
8092 -- Bug 4922099
8093 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8094 (NVL(l_enc_upg_option, 'N') = 'O')
8095 ) AND
8096 (l_bflow_method_code = 'PRIOR_ENTRY')
8097 )
8098 THEN
8099 IF
8100 --
8101 1 = 2
8102 --
8103 THEN
8104 xla_accounting_err_pkg.build_message
8105 (p_appli_s_name => 'XLA'
8106 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8107 ,p_token_1 => 'LINE_NUMBER'
8108 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8109 ,p_token_2 => 'LINE_TYPE_NAME'
8110 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8111 l_component_type
8112 ,l_component_code
8113 ,l_component_type_code
8114 ,l_component_appl_id
8115 ,l_amb_context_code
8116 ,l_entity_code
8117 ,l_event_class_code
8118 )
8119 ,p_token_3 => 'OWNER'
8120 ,p_value_3 => xla_lookups_pkg.get_meaning(
8124 ,p_token_4 => 'PRODUCT_NAME'
8121 p_lookup_type => 'XLA_OWNER_TYPE'
8122 ,p_lookup_code => l_component_type_code
8123 )
8125 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8126 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8127 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8128 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8129 ,p_ae_header_id => NULL
8130 );
8131
8132 IF (C_LEVEL_ERROR>= g_log_level) THEN
8133 trace
8134 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8135 ,p_level => C_LEVEL_ERROR
8136 ,p_module => l_log_module);
8137 END IF;
8138 END IF;
8139 END IF;
8140 --
8141 --
8142 ------------------------------------------------------------------------------------------------
8143 -- 4219869 Business Flow
8144 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8145 -- Prior Entry. Currently, the following code is always generated.
8146 ------------------------------------------------------------------------------------------------
8147 XLA_AE_LINES_PKG.ValidateCurrentLine;
8148
8149 ------------------------------------------------------------------------------------
8150 -- 4219869 Business Flow
8151 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8152 ------------------------------------------------------------------------------------
8153 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8154
8155 ----------------------------------------------------------------------------------
8156 -- 4219869 Business Flow
8157 -- Update journal entry status -- Need to generate this within IF <condition>
8158 ----------------------------------------------------------------------------------
8159 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8160 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8161 ,p_balance_type_code => l_balance_type_code
8162 );
8163
8164 -------------------------------------------------------------------------------------------
8165 -- 4262811 - Generate the Accrual Reversal lines
8166 -------------------------------------------------------------------------------------------
8167 BEGIN
8168 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8169 (g_array_event(p_event_id).array_value_num('header_index'));
8170 IF l_acc_rev_flag IS NULL THEN
8171 l_acc_rev_flag := 'N';
8172 END IF;
8173 EXCEPTION
8174 WHEN OTHERS THEN
8175 l_acc_rev_flag := 'N';
8176 END;
8177 --
8178 IF (l_acc_rev_flag = 'Y') THEN
8179
8180 -- 4645092 ------------------------------------------------------------------------------
8181 -- To allow MPA report to determine if it should generate report process
8182 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8183 ------------------------------------------------------------------------------------------
8184
8185 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8186 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8187
8188 --
8189 -- Update the line information that should be overwritten
8190 --
8191 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8192 p_header_num => 1);
8193 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8194
8195 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8196
8197 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8198 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8199 END IF;
8200
8201 --
8202 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8203 --
8204 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8205 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8206 ELSE
8207 ---------------------------------------------------------------------------------------------------
8208 -- 4262811a Switch Sign
8209 ---------------------------------------------------------------------------------------------------
8210 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8211 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8212 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8213 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8214 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8215 -- 5132302
8216 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8217 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8218
8219 END IF;
8220
8221 -- 4955764
8222 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8223 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8224
8225
8226 XLA_AE_LINES_PKG.ValidateCurrentLine;
8227 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8228
8229 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8230 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8231 ,p_balance_type_code => l_balance_type_code);
8232
8233 END IF;
8234
8235 -----------------------------------------------------------------------------------------
8236 -- 4262811 Multiperiod Accounting
8237 -----------------------------------------------------------------------------------------
8238 -- No MPA option is assigned.
8239
8240
8241 END IF;
8242 END IF;
8243 --
8244
8245 --
8246 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8247 trace
8248 (p_msg => 'END of AcctLineType_23'
8249 ,p_level => C_LEVEL_PROCEDURE
8250 ,p_module => l_log_module);
8251 END IF;
8252 --
8253 EXCEPTION
8254 WHEN xla_exceptions_pkg.application_exception THEN
8255 RAISE;
8256 WHEN OTHERS THEN
8257 xla_exceptions_pkg.raise_message
8258 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_23');
8259 END AcctLineType_23;
8260 --
8261
8262 ---------------------------------------
8263 --
8264 -- PRIVATE FUNCTION
8265 -- AcctLineType_24
8266 --
8267 ---------------------------------------
8268 PROCEDURE AcctLineType_24 (
8269 p_application_id IN NUMBER
8270 ,p_event_id IN NUMBER
8271 ,p_calculate_acctd_flag IN VARCHAR2
8272 ,p_calculate_g_l_flag IN VARCHAR2
8273 ,p_actual_flag IN OUT VARCHAR2
8274 ,p_balance_type_code OUT VARCHAR2
8275 ,p_gain_or_loss_ref OUT VARCHAR2
8276
8277 --Journal entry Line Description
8278 , p_source_3 IN VARCHAR2
8279 --Budget Account
8280 , p_source_9 IN NUMBER
8281 --Federal Prior Year Flag
8282 , p_source_10 IN VARCHAR2
8283 --Federal Net Pya Adj Amt
8284 , p_source_11 IN NUMBER
8285 --Main Or Backing Code
8286 , p_source_13 IN VARCHAR2
8287 --PO Distribution Type
8288 , p_source_14 IN VARCHAR2
8289 --Accounting Reversal Flag
8290 , p_source_15 IN VARCHAR2
8291 --Distribution Link Type
8292 , p_source_17 IN VARCHAR2
8293 --PO Distribution Identifier
8294 , p_source_19 IN NUMBER
8295 --PO Header Identifier
8296 , p_source_20 IN NUMBER
8297 --Applied To Application Identifier
8298 , p_source_21 IN NUMBER
8299 --Applied To Distribution Link Type
8300 , p_source_22 IN VARCHAR2
8301 --Applied To Entity Code
8302 , p_source_23 IN VARCHAR2
8303 --Applied To Distribution Identifier 1
8304 , p_source_24 IN NUMBER
8305 --Applied To Header Identifier 1
8306 , p_source_25 IN NUMBER
8307 --Entered Amount
8308 , p_source_26 IN NUMBER
8309 --Currency Code
8310 , p_source_27 IN VARCHAR2
8311 --Accounted Amount
8312 , p_source_28 IN NUMBER
8313 --PO Encumbrance Upgrade Option
8314 , p_source_29 IN VARCHAR2
8315 --JFMIP Reference
8316 , p_source_31 IN VARCHAR2
8317 --PO Upgrade Encumbrance Type Identifier
8318 , p_source_32 IN NUMBER
8319 --Currency Conversion Date
8320 , p_source_35 IN DATE
8321 --Currency Conversion Rate
8322 , p_source_36 IN NUMBER
8323 --Currency Conversion Type
8324 , p_source_37 IN VARCHAR2
8325 --Federal Pya Differential Amt
8326 , p_source_38 IN NUMBER
8327 )
8328 IS
8329
8330 l_component_type VARCHAR2(80);
8331 l_component_code VARCHAR2(30);
8332 l_component_type_code VARCHAR2(1);
8333 l_component_appl_id INTEGER;
8334 l_amb_context_code VARCHAR2(30);
8335 l_entity_code VARCHAR2(30);
8336 l_event_class_code VARCHAR2(30);
8337 l_ae_header_id NUMBER;
8338 l_event_type_code VARCHAR2(30);
8339 l_line_definition_code VARCHAR2(30);
8340 l_line_definition_owner_code VARCHAR2(1);
8341 --
8342 -- adr variables
8343 l_segment VARCHAR2(30);
8344 l_ccid NUMBER;
8345 l_adr_transaction_coa_id NUMBER;
8346 l_adr_accounting_coa_id NUMBER;
8347 l_adr_flexfield_segment_code VARCHAR2(30);
8348 l_adr_flex_value_set_id NUMBER;
8349 l_adr_value_type_code VARCHAR2(30);
8350 l_adr_value_combination_id NUMBER;
8351 l_adr_value_segment_code VARCHAR2(30);
8352
8353 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8354 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8355 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8356 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8357
8358 -- 4262811 Variables ------------------------------------------------------------------------------------------
8359 l_entered_amt_idx NUMBER;
8360 l_accted_amt_idx NUMBER;
8361 l_acc_rev_flag VARCHAR2(1);
8362 l_accrual_line_num NUMBER;
8363 l_tmp_amt NUMBER;
8364 l_acc_rev_natural_side_code VARCHAR2(1);
8365
8366 l_num_entries NUMBER;
8367 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8368 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8369 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8370 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8371 l_recog_line_1 NUMBER;
8372 l_recog_line_2 NUMBER;
8373
8374 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8375 l_bflow_applied_to_amt NUMBER; -- 5132302
8376 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8377
8378 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8379
8380 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8381 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8382
8383 ---------------------------------------------------------------------------------------------------------------
8384
8385
8386 --
8387 -- bulk performance
8388 --
8389 l_balance_type_code VARCHAR2(1);
8390 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8391 l_log_module VARCHAR2(240);
8392
8393 --
8394 -- Upgrade strategy
8395 --
8396 l_actual_upg_option VARCHAR2(1);
8397 l_enc_upg_option VARCHAR2(1);
8398
8399 --
8400 BEGIN
8401 --
8402 IF g_log_enabled THEN
8403 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_24';
8404 END IF;
8405 --
8406 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8407
8408 trace
8409 (p_msg => 'BEGIN of AcctLineType_24'
8410 ,p_level => C_LEVEL_PROCEDURE
8411 ,p_module => l_log_module);
8412
8413 END IF;
8414 --
8415 l_component_type := 'AMB_JLT';
8416 l_component_code := 'FV_PO_PYA_DIFF_RESERVE_CR';
8417 l_component_type_code := 'S';
8418 l_component_appl_id := 201;
8419 l_amb_context_code := 'DEFAULT';
8420 l_entity_code := 'PURCHASE_ORDER';
8421 l_event_class_code := 'PO_PA';
8422 l_event_type_code := 'PO_PA_ALL';
8423 l_line_definition_owner_code := 'S';
8424 l_line_definition_code := 'FV_PO_ALL';
8425 --
8426 l_balance_type_code := 'A';
8427 l_segment := NULL;
8428 l_ccid := NULL;
8429 l_adr_transaction_coa_id := NULL;
8430 l_adr_accounting_coa_id := NULL;
8431 l_adr_flexfield_segment_code := NULL;
8432 l_adr_flex_value_set_id := NULL;
8433 l_adr_value_type_code := NULL;
8434 l_adr_value_combination_id := NULL;
8435 l_adr_value_segment_code := NULL;
8436
8437 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8438 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
8439 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8440 l_budgetary_control_flag := 'Y';
8441
8442 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8443 l_bflow_applied_to_amt := NULL; -- 5132302
8444 l_entered_amt_idx := NULL; -- 4262811
8445 l_accted_amt_idx := NULL; -- 4262811
8446 l_acc_rev_flag := NULL; -- 4262811
8447 l_accrual_line_num := NULL; -- 4262811
8448 l_tmp_amt := NULL; -- 4262811
8449 --
8450
8451 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8452 l_balance_type_code <> 'B' THEN
8453 IF NVL(
8454 xla_ae_sources_pkg.GetSystemSourceChar(
8455 p_source_code => 'XLA_EVENT_TYPE_CODE'
8456 , p_source_type_code => 'Y'
8457 , p_source_application_id => 602
8458 ),'
8459 ') = 'PO_PA_RESERVED' AND
8460 NVL(p_source_13,'
8461 ') = 'M' AND
8462 (NVL(p_source_14,'
8463 ') <> 'AGREEMENT' OR
8464 p_source_14 IS NULL ) AND
8465 NVL(p_source_10,'
8466 ') = 'Y' AND
8467 p_source_11 > 0
8468 THEN
8469
8470 --
8471 XLA_AE_LINES_PKG.SetNewLine;
8472
8473 p_balance_type_code := l_balance_type_code;
8474 -- set the flag so later we will know whether the gain loss line needs to be created
8475
8476 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8477 p_actual_flag :='A';
8478 END IF;
8479
8480 --
8481 -- bulk performance
8482 --
8483 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8484 p_header_num => 0); -- 4262811
8485 --
8486 -- set accounting line options
8487 --
8488 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8489 p_natural_side_code => 'C'
8490 , p_gain_or_loss_flag => 'N'
8491 , p_gl_transfer_mode_code => 'S'
8492 , p_acct_entry_type_code => 'A'
8493 , p_switch_side_flag => 'Y'
8494 , p_merge_duplicate_code => 'N'
8495 );
8496 --
8497 l_acc_rev_natural_side_code := 'D'; -- 4262811
8498 --
8499 --
8500 -- set accounting line type info
8501 --
8502 xla_ae_lines_pkg.SetAcctLineType
8503 (p_component_type => l_component_type
8504 ,p_event_type_code => l_event_type_code
8505 ,p_line_definition_owner_code => l_line_definition_owner_code
8506 ,p_line_definition_code => l_line_definition_code
8507 ,p_accounting_line_code => l_component_code
8508 ,p_accounting_line_type_code => l_component_type_code
8509 ,p_accounting_line_appl_id => l_component_appl_id
8510 ,p_amb_context_code => l_amb_context_code
8511 ,p_entity_code => l_entity_code
8512 ,p_event_class_code => l_event_class_code);
8513 --
8514 -- set accounting class
8515 --
8516 xla_ae_lines_pkg.SetAcctClass(
8517 p_accounting_class_code => 'PURCHASE_ORDER'
8518 , p_ae_header_id => l_ae_header_id
8519 );
8520
8521 --
8522 -- set rounding class
8523 --
8524 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8525 'PURCHASE_ORDER';
8526
8527 --
8528 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8529 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8530 --
8531 -- bulk performance
8532 --
8533 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8534
8535 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8536 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8537
8538 -- 4955764
8539 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8540 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8541
8542 -- 4458381 Public Sector Enh
8543
8544 --
8545 -- set accounting attributes for the line type
8546 --
8547 l_entered_amt_idx := 23;
8548 l_accted_amt_idx := 28;
8549 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8550 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8551 l_rec_acct_attrs.array_char_value(1) := p_source_15;
8552 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8553 l_rec_acct_attrs.array_num_value(2) :=
8554 xla_ae_sources_pkg.GetSystemSourceNum(
8555 p_source_code => 'XLA_EVENT_APPL_ID'
8556 , p_source_type_code => 'Y'
8557 , p_source_application_id => 602
8558 );
8559 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8560 l_rec_acct_attrs.array_char_value(3) := p_source_17;
8561 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8562 l_rec_acct_attrs.array_char_value(4) :=
8563 xla_ae_sources_pkg.GetSystemSourceChar(
8564 p_source_code => 'XLA_ENTITY_CODE'
8565 , p_source_type_code => 'Y'
8566 , p_source_application_id => 602
8567 );
8568 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8569 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
8570 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8571 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
8572 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8573 l_rec_acct_attrs.array_num_value(7) := p_source_21;
8574 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8575 l_rec_acct_attrs.array_char_value(8) := p_source_22;
8576 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8577 l_rec_acct_attrs.array_char_value(9) := p_source_23;
8578 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8579 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
8580 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8581 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
8582 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8583 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
8584 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8585 l_rec_acct_attrs.array_char_value(13) := p_source_17;
8586 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
8587 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
8588 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
8589 l_rec_acct_attrs.array_num_value(15) := p_source_26;
8590 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
8591 l_rec_acct_attrs.array_char_value(16) := p_source_27;
8592 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
8593 l_rec_acct_attrs.array_num_value(17) := p_source_28;
8594 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
8595 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
8596 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
8597 l_rec_acct_attrs.array_num_value(19) := p_source_26;
8598 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
8599 l_rec_acct_attrs.array_char_value(20) := p_source_27;
8600 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
8601 l_rec_acct_attrs.array_num_value(21) := p_source_28;
8602 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
8603 l_rec_acct_attrs.array_char_value(22) := p_source_29;
8604 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
8605 l_rec_acct_attrs.array_num_value(23) := p_source_38;
8606 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
8607 l_rec_acct_attrs.array_char_value(24) := p_source_27;
8608 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
8609 l_rec_acct_attrs.array_date_value(25) := p_source_35;
8610 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
8611 l_rec_acct_attrs.array_num_value(26) := p_source_36;
8612 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
8613 l_rec_acct_attrs.array_char_value(27) := p_source_37;
8614 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
8615 l_rec_acct_attrs.array_num_value(28) := p_source_38;
8616 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
8617 l_rec_acct_attrs.array_char_value(29) := p_source_31;
8618 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
8619 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
8620 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
8621 l_rec_acct_attrs.array_char_value(31) := p_source_22;
8622 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
8623 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
8624 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
8625 l_rec_acct_attrs.array_num_value(33) := p_source_32;
8626 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
8627 l_rec_acct_attrs.array_num_value(34) := p_source_32;
8628
8629 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8630 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8631
8632 ---------------------------------------------------------------------------------------------------------------
8633 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8634 ---------------------------------------------------------------------------------------------------------------
8638 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8635 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8636
8637 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8639
8640 IF xla_accounting_cache_pkg.GetValueChar
8641 (p_source_code => 'LEDGER_CATEGORY_CODE'
8642 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8643 AND l_bflow_method_code = 'PRIOR_ENTRY'
8644 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8645 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8646 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8647 )
8648 THEN
8649 xla_ae_lines_pkg.BflowUpgEntry
8650 (p_business_method_code => l_bflow_method_code
8651 ,p_business_class_code => l_bflow_class_code
8652 ,p_balance_type => l_balance_type_code);
8653 ELSE
8654 NULL;
8655 -- No business flow processing for business flow method of NONE.
8656 END IF;
8657
8658 --
8659 -- call analytical criteria
8660 --
8661
8662 --
8663 -- call description
8664 --
8665
8666 xla_ae_lines_pkg.SetLineDescription(
8667 p_ae_header_id => l_ae_header_id
8668 ,p_description => Description_2 (
8669 p_application_id => p_application_id
8670 , p_ae_header_id => l_ae_header_id
8671 , p_source_3 => p_source_3
8672 )
8673 );
8674
8675
8676 --
8677 -- call ADRs
8678 -- Bug 4922099
8679 --
8680 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8681 (NVL(l_actual_upg_option, 'N') = 'O') OR
8682 (NVL(l_enc_upg_option, 'N') = 'O')
8683 )
8684 THEN
8685 NULL;
8686 --
8687 --
8688
8689 l_ccid := AcctDerRule_9(
8690 p_application_id => p_application_id
8691 , p_ae_header_id => l_ae_header_id
8692 , p_source_9 => p_source_9
8693 , x_transaction_coa_id => l_adr_transaction_coa_id
8694 , x_accounting_coa_id => l_adr_accounting_coa_id
8695 , x_value_type_code => l_adr_value_type_code
8696 , p_side => 'NA'
8697 );
8698
8699 xla_ae_lines_pkg.set_ccid(
8700 p_code_combination_id => l_ccid
8701 , p_value_type_code => l_adr_value_type_code
8702 , p_transaction_coa_id => l_adr_transaction_coa_id
8703 , p_accounting_coa_id => l_adr_accounting_coa_id
8704 , p_adr_code => 'FV_ACCOUNT_RULE'
8705 , p_adr_type_code => 'S'
8706 , p_component_type => l_component_type
8707 , p_component_code => l_component_code
8708 , p_component_type_code => l_component_type_code
8709 , p_component_appl_id => l_component_appl_id
8710 , p_amb_context_code => l_amb_context_code
8711 , p_side => 'NA'
8712 );
8713
8714
8715 l_segment := AcctDerRule_7(
8716 p_application_id => p_application_id
8717 , p_ae_header_id => l_ae_header_id
8718 , x_transaction_coa_id => l_adr_transaction_coa_id
8719 , x_accounting_coa_id => l_adr_accounting_coa_id
8720 , x_flexfield_segment_code => l_adr_flexfield_segment_code
8721 , x_flex_value_set_id => l_adr_flex_value_set_id
8722 , x_value_type_code => l_adr_value_type_code
8723 , x_value_combination_id => l_adr_value_combination_id
8724 , x_value_segment_code => l_adr_value_segment_code
8725 , p_side => 'NA'
8726 , p_override_seg_flag => 'Y'
8727 );
8728
8729 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
8730
8731 xla_ae_lines_pkg.set_segment(
8732 p_to_segment_code => 'GL_ACCOUNT'
8733 , p_segment_value => l_segment
8734 , p_from_segment_code => l_adr_value_segment_code
8735 , p_from_combination_id => l_adr_value_combination_id
8736 , p_value_type_code => l_adr_value_type_code
8737 , p_transaction_coa_id => l_adr_transaction_coa_id
8738 , p_accounting_coa_id => l_adr_accounting_coa_id
8739 , p_flexfield_segment_code => l_adr_flexfield_segment_code
8740 , p_flex_value_set_id => l_adr_flex_value_set_id
8741 , p_adr_code => 'FV_488101_PURCHASING'
8742 , p_adr_type_code => 'S'
8743 , p_component_type => l_component_type
8744 , p_component_code => l_component_code
8745 , p_component_type_code => l_component_type_code
8746 , p_component_appl_id => l_component_appl_id
8747 , p_amb_context_code => l_amb_context_code
8748 , p_entity_code => 'PURCHASE_ORDER'
8749 , p_event_class_code => 'PO_PA'
8750 , p_side => 'NA'
8751 );
8752
8753 END IF;
8754
8755 --
8756 --
8757 END IF;
8758 --
8759 -- Bug 4922099
8760 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8761 (NVL(l_enc_upg_option, 'N') = 'O')
8762 ) AND
8763 (l_bflow_method_code = 'PRIOR_ENTRY')
8764 )
8765 THEN
8766 IF
8767 --
8768 1 = 2
8769 --
8770 THEN
8771 xla_accounting_err_pkg.build_message
8772 (p_appli_s_name => 'XLA'
8773 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8774 ,p_token_1 => 'LINE_NUMBER'
8775 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8776 ,p_token_2 => 'LINE_TYPE_NAME'
8777 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8778 l_component_type
8779 ,l_component_code
8780 ,l_component_type_code
8781 ,l_component_appl_id
8782 ,l_amb_context_code
8783 ,l_entity_code
8784 ,l_event_class_code
8785 )
8786 ,p_token_3 => 'OWNER'
8787 ,p_value_3 => xla_lookups_pkg.get_meaning(
8788 p_lookup_type => 'XLA_OWNER_TYPE'
8789 ,p_lookup_code => l_component_type_code
8790 )
8791 ,p_token_4 => 'PRODUCT_NAME'
8792 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8793 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8794 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8795 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8796 ,p_ae_header_id => NULL
8797 );
8798
8799 IF (C_LEVEL_ERROR>= g_log_level) THEN
8800 trace
8801 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8802 ,p_level => C_LEVEL_ERROR
8803 ,p_module => l_log_module);
8804 END IF;
8805 END IF;
8806 END IF;
8807 --
8808 --
8809 ------------------------------------------------------------------------------------------------
8810 -- 4219869 Business Flow
8811 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8812 -- Prior Entry. Currently, the following code is always generated.
8813 ------------------------------------------------------------------------------------------------
8814 XLA_AE_LINES_PKG.ValidateCurrentLine;
8815
8816 ------------------------------------------------------------------------------------
8817 -- 4219869 Business Flow
8821
8818 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8819 ------------------------------------------------------------------------------------
8820 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8822 ----------------------------------------------------------------------------------
8823 -- 4219869 Business Flow
8824 -- Update journal entry status -- Need to generate this within IF <condition>
8825 ----------------------------------------------------------------------------------
8826 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8827 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8828 ,p_balance_type_code => l_balance_type_code
8829 );
8830
8831 -------------------------------------------------------------------------------------------
8832 -- 4262811 - Generate the Accrual Reversal lines
8833 -------------------------------------------------------------------------------------------
8834 BEGIN
8835 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8836 (g_array_event(p_event_id).array_value_num('header_index'));
8837 IF l_acc_rev_flag IS NULL THEN
8838 l_acc_rev_flag := 'N';
8839 END IF;
8840 EXCEPTION
8841 WHEN OTHERS THEN
8842 l_acc_rev_flag := 'N';
8843 END;
8844 --
8845 IF (l_acc_rev_flag = 'Y') THEN
8846
8847 -- 4645092 ------------------------------------------------------------------------------
8848 -- To allow MPA report to determine if it should generate report process
8849 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8850 ------------------------------------------------------------------------------------------
8851
8852 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8853 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8854
8855 --
8856 -- Update the line information that should be overwritten
8857 --
8858 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8859 p_header_num => 1);
8860 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8861
8862 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8863
8864 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8865 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8866 END IF;
8867
8868 --
8869 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8870 --
8871 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8872 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8873 ELSE
8874 ---------------------------------------------------------------------------------------------------
8875 -- 4262811a Switch Sign
8876 ---------------------------------------------------------------------------------------------------
8877 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8878 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8879 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8880 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8881 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8882 -- 5132302
8883 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8884 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8885
8886 END IF;
8887
8888 -- 4955764
8889 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8890 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8891
8892
8893 XLA_AE_LINES_PKG.ValidateCurrentLine;
8894 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8895
8896 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8897 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8898 ,p_balance_type_code => l_balance_type_code);
8899
8900 END IF;
8901
8902 -----------------------------------------------------------------------------------------
8903 -- 4262811 Multiperiod Accounting
8904 -----------------------------------------------------------------------------------------
8905 -- No MPA option is assigned.
8906
8907
8908 END IF;
8909 END IF;
8910 --
8911
8912 --
8913 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8914 trace
8915 (p_msg => 'END of AcctLineType_24'
8916 ,p_level => C_LEVEL_PROCEDURE
8917 ,p_module => l_log_module);
8918 END IF;
8919 --
8920 EXCEPTION
8921 WHEN xla_exceptions_pkg.application_exception THEN
8922 RAISE;
8923 WHEN OTHERS THEN
8924 xla_exceptions_pkg.raise_message
8925 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_24');
8926 END AcctLineType_24;
8927 --
8928
8929 ---------------------------------------
8930 --
8931 -- PRIVATE FUNCTION
8935 PROCEDURE AcctLineType_25 (
8932 -- AcctLineType_25
8933 --
8934 ---------------------------------------
8936 p_application_id IN NUMBER
8937 ,p_event_id IN NUMBER
8938 ,p_calculate_acctd_flag IN VARCHAR2
8939 ,p_calculate_g_l_flag IN VARCHAR2
8940 ,p_actual_flag IN OUT VARCHAR2
8941 ,p_balance_type_code OUT VARCHAR2
8942 ,p_gain_or_loss_ref OUT VARCHAR2
8943
8944 --Journal entry Line Description
8945 , p_source_3 IN VARCHAR2
8946 --Federal Fund Category
8947 , p_source_7 IN VARCHAR2
8948 --Federal Fund Expired Status
8949 , p_source_8 IN VARCHAR2
8950 --Budget Account
8951 , p_source_9 IN NUMBER
8952 --Federal Prior Year Flag
8953 , p_source_10 IN VARCHAR2
8954 --Federal Net Pya Adj Amt
8955 , p_source_11 IN NUMBER
8956 --Main Or Backing Code
8957 , p_source_13 IN VARCHAR2
8958 --PO Distribution Type
8959 , p_source_14 IN VARCHAR2
8960 --Accounting Reversal Flag
8961 , p_source_15 IN VARCHAR2
8962 --Distribution Link Type
8963 , p_source_17 IN VARCHAR2
8964 --PO Distribution Identifier
8965 , p_source_19 IN NUMBER
8966 --PO Header Identifier
8967 , p_source_20 IN NUMBER
8968 --Applied To Application Identifier
8969 , p_source_21 IN NUMBER
8970 --Applied To Distribution Link Type
8971 , p_source_22 IN VARCHAR2
8972 --Applied To Entity Code
8973 , p_source_23 IN VARCHAR2
8974 --Applied To Distribution Identifier 1
8975 , p_source_24 IN NUMBER
8976 --Applied To Header Identifier 1
8977 , p_source_25 IN NUMBER
8978 --Entered Amount
8979 , p_source_26 IN NUMBER
8980 --Currency Code
8981 , p_source_27 IN VARCHAR2
8982 --Accounted Amount
8983 , p_source_28 IN NUMBER
8984 --PO Encumbrance Upgrade Option
8985 , p_source_29 IN VARCHAR2
8986 --JFMIP Reference
8987 , p_source_31 IN VARCHAR2
8988 --PO Upgrade Encumbrance Type Identifier
8989 , p_source_32 IN NUMBER
8990 --Currency Conversion Date
8991 , p_source_35 IN DATE
8992 --Currency Conversion Rate
8993 , p_source_36 IN NUMBER
8994 --Currency Conversion Type
8995 , p_source_37 IN VARCHAR2
8996 --Federal Pya Differential Amt
8997 , p_source_38 IN NUMBER
8998 )
8999 IS
9000
9001 l_component_type VARCHAR2(80);
9002 l_component_code VARCHAR2(30);
9003 l_component_type_code VARCHAR2(1);
9004 l_component_appl_id INTEGER;
9005 l_amb_context_code VARCHAR2(30);
9006 l_entity_code VARCHAR2(30);
9007 l_event_class_code VARCHAR2(30);
9008 l_ae_header_id NUMBER;
9009 l_event_type_code VARCHAR2(30);
9010 l_line_definition_code VARCHAR2(30);
9011 l_line_definition_owner_code VARCHAR2(1);
9012 --
9013 -- adr variables
9014 l_segment VARCHAR2(30);
9015 l_ccid NUMBER;
9016 l_adr_transaction_coa_id NUMBER;
9017 l_adr_accounting_coa_id NUMBER;
9018 l_adr_flexfield_segment_code VARCHAR2(30);
9019 l_adr_flex_value_set_id NUMBER;
9020 l_adr_value_type_code VARCHAR2(30);
9021 l_adr_value_combination_id NUMBER;
9022 l_adr_value_segment_code VARCHAR2(30);
9023
9024 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9025 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9026 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9027 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9028
9029 -- 4262811 Variables ------------------------------------------------------------------------------------------
9030 l_entered_amt_idx NUMBER;
9031 l_accted_amt_idx NUMBER;
9032 l_acc_rev_flag VARCHAR2(1);
9033 l_accrual_line_num NUMBER;
9034 l_tmp_amt NUMBER;
9035 l_acc_rev_natural_side_code VARCHAR2(1);
9036
9037 l_num_entries NUMBER;
9038 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9039 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9040 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9041 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9042 l_recog_line_1 NUMBER;
9043 l_recog_line_2 NUMBER;
9044
9045 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9046 l_bflow_applied_to_amt NUMBER; -- 5132302
9047 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9048
9049 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9050
9051 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9052 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9053
9054 ---------------------------------------------------------------------------------------------------------------
9055
9056
9057 --
9058 -- bulk performance
9059 --
9060 l_balance_type_code VARCHAR2(1);
9061 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9062 l_log_module VARCHAR2(240);
9063
9064 --
9065 -- Upgrade strategy
9066 --
9067 l_actual_upg_option VARCHAR2(1);
9068 l_enc_upg_option VARCHAR2(1);
9069
9070 --
9071 BEGIN
9072 --
9073 IF g_log_enabled THEN
9077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9074 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_25';
9075 END IF;
9076 --
9078
9079 trace
9080 (p_msg => 'BEGIN of AcctLineType_25'
9081 ,p_level => C_LEVEL_PROCEDURE
9082 ,p_module => l_log_module);
9083
9084 END IF;
9085 --
9086 l_component_type := 'AMB_JLT';
9087 l_component_code := 'FV_PO_PYA_DIFF_RESERVE_DR';
9088 l_component_type_code := 'S';
9089 l_component_appl_id := 201;
9090 l_amb_context_code := 'DEFAULT';
9091 l_entity_code := 'PURCHASE_ORDER';
9092 l_event_class_code := 'PO_PA';
9093 l_event_type_code := 'PO_PA_ALL';
9094 l_line_definition_owner_code := 'S';
9095 l_line_definition_code := 'FV_PO_ALL';
9096 --
9097 l_balance_type_code := 'A';
9098 l_segment := NULL;
9099 l_ccid := NULL;
9100 l_adr_transaction_coa_id := NULL;
9101 l_adr_accounting_coa_id := NULL;
9102 l_adr_flexfield_segment_code := NULL;
9103 l_adr_flex_value_set_id := NULL;
9104 l_adr_value_type_code := NULL;
9105 l_adr_value_combination_id := NULL;
9106 l_adr_value_segment_code := NULL;
9107
9108 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
9109 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
9110 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9111 l_budgetary_control_flag := 'Y';
9112
9113 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9114 l_bflow_applied_to_amt := NULL; -- 5132302
9115 l_entered_amt_idx := NULL; -- 4262811
9116 l_accted_amt_idx := NULL; -- 4262811
9117 l_acc_rev_flag := NULL; -- 4262811
9118 l_accrual_line_num := NULL; -- 4262811
9119 l_tmp_amt := NULL; -- 4262811
9120 --
9121
9122 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9123 l_balance_type_code <> 'B' THEN
9124 IF NVL(
9125 xla_ae_sources_pkg.GetSystemSourceChar(
9126 p_source_code => 'XLA_EVENT_TYPE_CODE'
9127 , p_source_type_code => 'Y'
9128 , p_source_application_id => 602
9129 ),'
9130 ') = 'PO_PA_RESERVED' AND
9131 NVL(p_source_13,'
9132 ') = 'M' AND
9133 (NVL(p_source_14,'
9134 ') <> 'AGREEMENT' OR
9135 p_source_14 IS NULL ) AND
9136 NVL(p_source_10,'
9137 ') = 'Y' AND
9138 NVL(p_source_11,9E125) <> 0 AND
9139 p_source_11 IS NOT NULL
9140 THEN
9141
9142 --
9143 XLA_AE_LINES_PKG.SetNewLine;
9144
9145 p_balance_type_code := l_balance_type_code;
9146 -- set the flag so later we will know whether the gain loss line needs to be created
9147
9148 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9149 p_actual_flag :='A';
9150 END IF;
9151
9152 --
9153 -- bulk performance
9154 --
9155 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9156 p_header_num => 0); -- 4262811
9157 --
9158 -- set accounting line options
9159 --
9160 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9161 p_natural_side_code => 'D'
9162 , p_gain_or_loss_flag => 'N'
9163 , p_gl_transfer_mode_code => 'S'
9164 , p_acct_entry_type_code => 'A'
9165 , p_switch_side_flag => 'Y'
9166 , p_merge_duplicate_code => 'N'
9167 );
9168 --
9169 l_acc_rev_natural_side_code := 'C'; -- 4262811
9170 --
9171 --
9172 -- set accounting line type info
9173 --
9174 xla_ae_lines_pkg.SetAcctLineType
9175 (p_component_type => l_component_type
9176 ,p_event_type_code => l_event_type_code
9177 ,p_line_definition_owner_code => l_line_definition_owner_code
9178 ,p_line_definition_code => l_line_definition_code
9179 ,p_accounting_line_code => l_component_code
9180 ,p_accounting_line_type_code => l_component_type_code
9181 ,p_accounting_line_appl_id => l_component_appl_id
9182 ,p_amb_context_code => l_amb_context_code
9183 ,p_entity_code => l_entity_code
9184 ,p_event_class_code => l_event_class_code);
9185 --
9186 -- set accounting class
9187 --
9188 xla_ae_lines_pkg.SetAcctClass(
9189 p_accounting_class_code => 'PURCHASE_ORDER'
9190 , p_ae_header_id => l_ae_header_id
9191 );
9192
9193 --
9194 -- set rounding class
9195 --
9196 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9197 'PURCHASE_ORDER';
9198
9199 --
9200 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9201 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9202 --
9203 -- bulk performance
9204 --
9205 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9206
9207 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9208 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9209
9210 -- 4955764
9211 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9212 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9213
9214 -- 4458381 Public Sector Enh
9215
9216 --
9217 -- set accounting attributes for the line type
9218 --
9219 l_entered_amt_idx := 23;
9220 l_accted_amt_idx := 28;
9221 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9222 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9223 l_rec_acct_attrs.array_char_value(1) := p_source_15;
9224 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
9225 l_rec_acct_attrs.array_num_value(2) :=
9226 xla_ae_sources_pkg.GetSystemSourceNum(
9227 p_source_code => 'XLA_EVENT_APPL_ID'
9228 , p_source_type_code => 'Y'
9229 , p_source_application_id => 602
9230 );
9231 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
9232 l_rec_acct_attrs.array_char_value(3) := p_source_17;
9233 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
9234 l_rec_acct_attrs.array_char_value(4) :=
9235 xla_ae_sources_pkg.GetSystemSourceChar(
9236 p_source_code => 'XLA_ENTITY_CODE'
9237 , p_source_type_code => 'Y'
9238 , p_source_application_id => 602
9239 );
9240 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
9241 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
9242 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
9243 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
9244 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
9245 l_rec_acct_attrs.array_num_value(7) := p_source_21;
9246 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9247 l_rec_acct_attrs.array_char_value(8) := p_source_22;
9248 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
9249 l_rec_acct_attrs.array_char_value(9) := p_source_23;
9250 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
9251 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
9252 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9253 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
9254 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
9255 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
9256 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
9257 l_rec_acct_attrs.array_char_value(13) := p_source_17;
9258 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
9259 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
9260 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
9261 l_rec_acct_attrs.array_num_value(15) := p_source_26;
9262 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
9263 l_rec_acct_attrs.array_char_value(16) := p_source_27;
9264 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
9265 l_rec_acct_attrs.array_num_value(17) := p_source_28;
9266 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
9267 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
9268 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
9269 l_rec_acct_attrs.array_num_value(19) := p_source_26;
9270 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
9271 l_rec_acct_attrs.array_char_value(20) := p_source_27;
9272 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
9273 l_rec_acct_attrs.array_num_value(21) := p_source_28;
9274 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
9275 l_rec_acct_attrs.array_char_value(22) := p_source_29;
9276 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
9277 l_rec_acct_attrs.array_num_value(23) := p_source_38;
9278 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
9279 l_rec_acct_attrs.array_char_value(24) := p_source_27;
9280 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
9281 l_rec_acct_attrs.array_date_value(25) := p_source_35;
9282 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
9283 l_rec_acct_attrs.array_num_value(26) := p_source_36;
9284 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
9285 l_rec_acct_attrs.array_char_value(27) := p_source_37;
9286 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
9287 l_rec_acct_attrs.array_num_value(28) := p_source_38;
9288 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
9289 l_rec_acct_attrs.array_char_value(29) := p_source_31;
9290 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
9291 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
9292 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
9293 l_rec_acct_attrs.array_char_value(31) := p_source_22;
9294 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
9295 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
9296 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
9297 l_rec_acct_attrs.array_num_value(33) := p_source_32;
9298 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
9299 l_rec_acct_attrs.array_num_value(34) := p_source_32;
9300
9301 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9302 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9303
9304 ---------------------------------------------------------------------------------------------------------------
9305 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9306 ---------------------------------------------------------------------------------------------------------------
9307 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9308
9309 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9310 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9311
9312 IF xla_accounting_cache_pkg.GetValueChar
9313 (p_source_code => 'LEDGER_CATEGORY_CODE'
9314 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9315 AND l_bflow_method_code = 'PRIOR_ENTRY'
9316 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9317 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9318 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9319 )
9320 THEN
9321 xla_ae_lines_pkg.BflowUpgEntry
9322 (p_business_method_code => l_bflow_method_code
9323 ,p_business_class_code => l_bflow_class_code
9324 ,p_balance_type => l_balance_type_code);
9325 ELSE
9326 NULL;
9327 -- No business flow processing for business flow method of NONE.
9328 END IF;
9329
9330 --
9331 -- call analytical criteria
9332 --
9333
9334 --
9335 -- call description
9336 --
9337
9338 xla_ae_lines_pkg.SetLineDescription(
9339 p_ae_header_id => l_ae_header_id
9340 ,p_description => Description_2 (
9341 p_application_id => p_application_id
9342 , p_ae_header_id => l_ae_header_id
9343 , p_source_3 => p_source_3
9344 )
9345 );
9346
9347
9348 --
9349 -- call ADRs
9350 -- Bug 4922099
9351 --
9352 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9353 (NVL(l_actual_upg_option, 'N') = 'O') OR
9354 (NVL(l_enc_upg_option, 'N') = 'O')
9355 )
9356 THEN
9357 NULL;
9358 --
9359 --
9360
9361 l_ccid := AcctDerRule_9(
9362 p_application_id => p_application_id
9363 , p_ae_header_id => l_ae_header_id
9364 , p_source_9 => p_source_9
9365 , x_transaction_coa_id => l_adr_transaction_coa_id
9366 , x_accounting_coa_id => l_adr_accounting_coa_id
9367 , x_value_type_code => l_adr_value_type_code
9368 , p_side => 'NA'
9369 );
9370
9371 xla_ae_lines_pkg.set_ccid(
9372 p_code_combination_id => l_ccid
9373 , p_value_type_code => l_adr_value_type_code
9374 , p_transaction_coa_id => l_adr_transaction_coa_id
9375 , p_accounting_coa_id => l_adr_accounting_coa_id
9376 , p_adr_code => 'FV_ACCOUNT_RULE'
9377 , p_adr_type_code => 'S'
9378 , p_component_type => l_component_type
9379 , p_component_code => l_component_code
9380 , p_component_type_code => l_component_type_code
9381 , p_component_appl_id => l_component_appl_id
9382 , p_amb_context_code => l_amb_context_code
9383 , p_side => 'NA'
9384 );
9385
9386
9387 l_segment := AcctDerRule_12(
9388 p_application_id => p_application_id
9389 , p_ae_header_id => l_ae_header_id
9390 , p_source_7 => p_source_7
9391 , p_source_8 => p_source_8
9392 , p_source_10 => p_source_10
9393 , p_source_11 => p_source_11
9394 , x_transaction_coa_id => l_adr_transaction_coa_id
9395 , x_accounting_coa_id => l_adr_accounting_coa_id
9396 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9397 , x_flex_value_set_id => l_adr_flex_value_set_id
9398 , x_value_type_code => l_adr_value_type_code
9399 , x_value_combination_id => l_adr_value_combination_id
9400 , x_value_segment_code => l_adr_value_segment_code
9401 , p_side => 'NA'
9402 , p_override_seg_flag => 'Y'
9403 );
9404
9405 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9406
9407 xla_ae_lines_pkg.set_segment(
9408 p_to_segment_code => 'GL_ACCOUNT'
9409 , p_segment_value => l_segment
9410 , p_from_segment_code => l_adr_value_segment_code
9411 , p_from_combination_id => l_adr_value_combination_id
9412 , p_value_type_code => l_adr_value_type_code
9413 , p_transaction_coa_id => l_adr_transaction_coa_id
9414 , p_accounting_coa_id => l_adr_accounting_coa_id
9415 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9416 , p_flex_value_set_id => l_adr_flex_value_set_id
9417 , p_adr_code => 'FV_PYA_46X002_487101'
9418 , p_adr_type_code => 'S'
9419 , p_component_type => l_component_type
9420 , p_component_code => l_component_code
9421 , p_component_type_code => l_component_type_code
9422 , p_component_appl_id => l_component_appl_id
9423 , p_amb_context_code => l_amb_context_code
9424 , p_entity_code => 'PURCHASE_ORDER'
9425 , p_event_class_code => 'PO_PA'
9426 , p_side => 'NA'
9427 );
9428
9429 END IF;
9430
9431 --
9432 --
9433 END IF;
9434 --
9435 -- Bug 4922099
9436 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9437 (NVL(l_enc_upg_option, 'N') = 'O')
9438 ) AND
9439 (l_bflow_method_code = 'PRIOR_ENTRY')
9440 )
9441 THEN
9442 IF
9443 --
9444 1 = 2
9445 --
9446 THEN
9447 xla_accounting_err_pkg.build_message
9448 (p_appli_s_name => 'XLA'
9449 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9450 ,p_token_1 => 'LINE_NUMBER'
9451 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9452 ,p_token_2 => 'LINE_TYPE_NAME'
9453 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9454 l_component_type
9455 ,l_component_code
9456 ,l_component_type_code
9457 ,l_component_appl_id
9458 ,l_amb_context_code
9459 ,l_entity_code
9460 ,l_event_class_code
9461 )
9462 ,p_token_3 => 'OWNER'
9463 ,p_value_3 => xla_lookups_pkg.get_meaning(
9464 p_lookup_type => 'XLA_OWNER_TYPE'
9465 ,p_lookup_code => l_component_type_code
9466 )
9467 ,p_token_4 => 'PRODUCT_NAME'
9468 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9469 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9470 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9471 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9472 ,p_ae_header_id => NULL
9473 );
9474
9475 IF (C_LEVEL_ERROR>= g_log_level) THEN
9476 trace
9477 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9478 ,p_level => C_LEVEL_ERROR
9479 ,p_module => l_log_module);
9480 END IF;
9481 END IF;
9482 END IF;
9483 --
9484 --
9485 ------------------------------------------------------------------------------------------------
9486 -- 4219869 Business Flow
9487 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9488 -- Prior Entry. Currently, the following code is always generated.
9489 ------------------------------------------------------------------------------------------------
9490 XLA_AE_LINES_PKG.ValidateCurrentLine;
9491
9492 ------------------------------------------------------------------------------------
9493 -- 4219869 Business Flow
9494 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9495 ------------------------------------------------------------------------------------
9496 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9497
9498 ----------------------------------------------------------------------------------
9499 -- 4219869 Business Flow
9500 -- Update journal entry status -- Need to generate this within IF <condition>
9501 ----------------------------------------------------------------------------------
9502 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9503 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9504 ,p_balance_type_code => l_balance_type_code
9505 );
9506
9507 -------------------------------------------------------------------------------------------
9508 -- 4262811 - Generate the Accrual Reversal lines
9509 -------------------------------------------------------------------------------------------
9510 BEGIN
9511 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9512 (g_array_event(p_event_id).array_value_num('header_index'));
9513 IF l_acc_rev_flag IS NULL THEN
9514 l_acc_rev_flag := 'N';
9515 END IF;
9516 EXCEPTION
9517 WHEN OTHERS THEN
9518 l_acc_rev_flag := 'N';
9519 END;
9523 -- 4645092 ------------------------------------------------------------------------------
9520 --
9521 IF (l_acc_rev_flag = 'Y') THEN
9522
9524 -- To allow MPA report to determine if it should generate report process
9525 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9526 ------------------------------------------------------------------------------------------
9527
9528 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9529 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9530
9531 --
9532 -- Update the line information that should be overwritten
9533 --
9534 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9535 p_header_num => 1);
9536 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9537
9538 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9539
9540 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9541 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9542 END IF;
9543
9544 --
9545 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9546 --
9547 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9548 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9549 ELSE
9550 ---------------------------------------------------------------------------------------------------
9551 -- 4262811a Switch Sign
9552 ---------------------------------------------------------------------------------------------------
9553 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9554 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9555 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9556 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9557 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9558 -- 5132302
9559 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9560 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9561
9562 END IF;
9563
9564 -- 4955764
9565 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9566 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9567
9568
9569 XLA_AE_LINES_PKG.ValidateCurrentLine;
9570 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9571
9572 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9573 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9574 ,p_balance_type_code => l_balance_type_code);
9575
9576 END IF;
9577
9578 -----------------------------------------------------------------------------------------
9579 -- 4262811 Multiperiod Accounting
9580 -----------------------------------------------------------------------------------------
9581 -- No MPA option is assigned.
9582
9583
9584 END IF;
9585 END IF;
9586 --
9587
9588 --
9589 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9590 trace
9591 (p_msg => 'END of AcctLineType_25'
9592 ,p_level => C_LEVEL_PROCEDURE
9593 ,p_module => l_log_module);
9594 END IF;
9595 --
9596 EXCEPTION
9597 WHEN xla_exceptions_pkg.application_exception THEN
9598 RAISE;
9599 WHEN OTHERS THEN
9600 xla_exceptions_pkg.raise_message
9601 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_25');
9602 END AcctLineType_25;
9603 --
9604
9605 ---------------------------------------
9606 --
9607 -- PRIVATE FUNCTION
9608 -- AcctLineType_26
9609 --
9610 ---------------------------------------
9611 PROCEDURE AcctLineType_26 (
9612 p_application_id IN NUMBER
9613 ,p_event_id IN NUMBER
9614 ,p_calculate_acctd_flag IN VARCHAR2
9615 ,p_calculate_g_l_flag IN VARCHAR2
9616 ,p_actual_flag IN OUT VARCHAR2
9617 ,p_balance_type_code OUT VARCHAR2
9618 ,p_gain_or_loss_ref OUT VARCHAR2
9619
9620 --Journal entry Line Description
9621 , p_source_3 IN VARCHAR2
9622 --Budget Account
9623 , p_source_9 IN NUMBER
9624 --Federal Prior Year Flag
9625 , p_source_10 IN VARCHAR2
9626 --Federal Net Pya Adj Amt
9627 , p_source_11 IN NUMBER
9628 --Main Or Backing Code
9629 , p_source_13 IN VARCHAR2
9630 --PO Distribution Type
9631 , p_source_14 IN VARCHAR2
9632 --Accounting Reversal Flag
9633 , p_source_15 IN VARCHAR2
9634 --Distribution Link Type
9635 , p_source_17 IN VARCHAR2
9636 --PO Distribution Identifier
9637 , p_source_19 IN NUMBER
9638 --PO Header Identifier
9639 , p_source_20 IN NUMBER
9640 --Applied To Application Identifier
9641 , p_source_21 IN NUMBER
9642 --Applied To Distribution Link Type
9643 , p_source_22 IN VARCHAR2
9644 --Applied To Entity Code
9648 --Applied To Header Identifier 1
9645 , p_source_23 IN VARCHAR2
9646 --Applied To Distribution Identifier 1
9647 , p_source_24 IN NUMBER
9649 , p_source_25 IN NUMBER
9650 --Entered Amount
9651 , p_source_26 IN NUMBER
9652 --Currency Code
9653 , p_source_27 IN VARCHAR2
9654 --Accounted Amount
9655 , p_source_28 IN NUMBER
9656 --PO Encumbrance Upgrade Option
9657 , p_source_29 IN VARCHAR2
9658 --JFMIP Reference
9659 , p_source_31 IN VARCHAR2
9660 --PO Upgrade Encumbrance Type Identifier
9661 , p_source_32 IN NUMBER
9662 --Currency Conversion Date
9663 , p_source_35 IN DATE
9664 --Currency Conversion Rate
9665 , p_source_36 IN NUMBER
9666 --Currency Conversion Type
9667 , p_source_37 IN VARCHAR2
9668 --Federal Anticipated Amt
9669 , p_source_39 IN NUMBER
9670 )
9671 IS
9672
9673 l_component_type VARCHAR2(80);
9674 l_component_code VARCHAR2(30);
9675 l_component_type_code VARCHAR2(1);
9676 l_component_appl_id INTEGER;
9677 l_amb_context_code VARCHAR2(30);
9678 l_entity_code VARCHAR2(30);
9679 l_event_class_code VARCHAR2(30);
9680 l_ae_header_id NUMBER;
9681 l_event_type_code VARCHAR2(30);
9682 l_line_definition_code VARCHAR2(30);
9683 l_line_definition_owner_code VARCHAR2(1);
9684 --
9685 -- adr variables
9686 l_segment VARCHAR2(30);
9687 l_ccid NUMBER;
9688 l_adr_transaction_coa_id NUMBER;
9689 l_adr_accounting_coa_id NUMBER;
9690 l_adr_flexfield_segment_code VARCHAR2(30);
9691 l_adr_flex_value_set_id NUMBER;
9692 l_adr_value_type_code VARCHAR2(30);
9693 l_adr_value_combination_id NUMBER;
9694 l_adr_value_segment_code VARCHAR2(30);
9695
9696 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9697 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9698 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9699 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9700
9701 -- 4262811 Variables ------------------------------------------------------------------------------------------
9702 l_entered_amt_idx NUMBER;
9703 l_accted_amt_idx NUMBER;
9704 l_acc_rev_flag VARCHAR2(1);
9705 l_accrual_line_num NUMBER;
9706 l_tmp_amt NUMBER;
9707 l_acc_rev_natural_side_code VARCHAR2(1);
9708
9709 l_num_entries NUMBER;
9710 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9711 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9712 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9713 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9714 l_recog_line_1 NUMBER;
9715 l_recog_line_2 NUMBER;
9716
9717 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9718 l_bflow_applied_to_amt NUMBER; -- 5132302
9719 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9720
9721 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9722
9723 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9724 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9725
9726 ---------------------------------------------------------------------------------------------------------------
9727
9728
9729 --
9730 -- bulk performance
9731 --
9732 l_balance_type_code VARCHAR2(1);
9733 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9734 l_log_module VARCHAR2(240);
9735
9736 --
9737 -- Upgrade strategy
9738 --
9739 l_actual_upg_option VARCHAR2(1);
9740 l_enc_upg_option VARCHAR2(1);
9741
9742 --
9743 BEGIN
9744 --
9745 IF g_log_enabled THEN
9746 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_26';
9747 END IF;
9748 --
9749 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9750
9751 trace
9752 (p_msg => 'BEGIN of AcctLineType_26'
9753 ,p_level => C_LEVEL_PROCEDURE
9754 ,p_module => l_log_module);
9755
9756 END IF;
9757 --
9758 l_component_type := 'AMB_JLT';
9759 l_component_code := 'FV_PO_PYA_DW_ANTICIAPTED_CR';
9760 l_component_type_code := 'S';
9761 l_component_appl_id := 201;
9762 l_amb_context_code := 'DEFAULT';
9763 l_entity_code := 'PURCHASE_ORDER';
9764 l_event_class_code := 'PO_PA';
9765 l_event_type_code := 'PO_PA_ALL';
9766 l_line_definition_owner_code := 'S';
9767 l_line_definition_code := 'FV_PO_ALL';
9768 --
9769 l_balance_type_code := 'A';
9770 l_segment := NULL;
9771 l_ccid := NULL;
9772 l_adr_transaction_coa_id := NULL;
9773 l_adr_accounting_coa_id := NULL;
9774 l_adr_flexfield_segment_code := NULL;
9775 l_adr_flex_value_set_id := NULL;
9776 l_adr_value_type_code := NULL;
9777 l_adr_value_combination_id := NULL;
9778 l_adr_value_segment_code := NULL;
9779
9780 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
9781 l_bflow_class_code := ''; -- 4219869 Business Flow
9782 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9783 l_budgetary_control_flag := 'Y';
9784
9788 l_accted_amt_idx := NULL; -- 4262811
9785 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9786 l_bflow_applied_to_amt := NULL; -- 5132302
9787 l_entered_amt_idx := NULL; -- 4262811
9789 l_acc_rev_flag := NULL; -- 4262811
9790 l_accrual_line_num := NULL; -- 4262811
9791 l_tmp_amt := NULL; -- 4262811
9792 --
9793
9794 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9795 l_balance_type_code <> 'B' THEN
9796 IF NVL(
9797 xla_ae_sources_pkg.GetSystemSourceChar(
9798 p_source_code => 'XLA_EVENT_TYPE_CODE'
9799 , p_source_type_code => 'Y'
9800 , p_source_application_id => 602
9801 ),'
9802 ') = 'PO_PA_RESERVED' AND
9803 NVL(p_source_13,'
9804 ') = 'M' AND
9805 (NVL(p_source_14,'
9806 ') <> 'AGREEMENT' OR
9807 p_source_14 IS NULL ) AND
9808 NVL(p_source_10,'
9809 ') = 'Y' AND
9810 p_source_11 < 0 AND
9811 NVL(p_source_39,9E125) <> 0 AND
9812 p_source_39 IS NOT NULL
9813 THEN
9814
9815 --
9816 XLA_AE_LINES_PKG.SetNewLine;
9817
9818 p_balance_type_code := l_balance_type_code;
9819 -- set the flag so later we will know whether the gain loss line needs to be created
9820
9821 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9822 p_actual_flag :='A';
9823 END IF;
9824
9825 --
9826 -- bulk performance
9827 --
9828 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9829 p_header_num => 0); -- 4262811
9830 --
9831 -- set accounting line options
9832 --
9833 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9834 p_natural_side_code => 'C'
9835 , p_gain_or_loss_flag => 'N'
9836 , p_gl_transfer_mode_code => 'S'
9837 , p_acct_entry_type_code => 'A'
9838 , p_switch_side_flag => 'Y'
9839 , p_merge_duplicate_code => 'N'
9840 );
9841 --
9842 l_acc_rev_natural_side_code := 'D'; -- 4262811
9843 --
9844 --
9845 -- set accounting line type info
9846 --
9847 xla_ae_lines_pkg.SetAcctLineType
9848 (p_component_type => l_component_type
9849 ,p_event_type_code => l_event_type_code
9850 ,p_line_definition_owner_code => l_line_definition_owner_code
9851 ,p_line_definition_code => l_line_definition_code
9852 ,p_accounting_line_code => l_component_code
9853 ,p_accounting_line_type_code => l_component_type_code
9854 ,p_accounting_line_appl_id => l_component_appl_id
9855 ,p_amb_context_code => l_amb_context_code
9856 ,p_entity_code => l_entity_code
9857 ,p_event_class_code => l_event_class_code);
9858 --
9859 -- set accounting class
9860 --
9861 xla_ae_lines_pkg.SetAcctClass(
9862 p_accounting_class_code => 'PURCHASE_ORDER'
9863 , p_ae_header_id => l_ae_header_id
9864 );
9865
9866 --
9867 -- set rounding class
9868 --
9869 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9870 'PURCHASE_ORDER';
9871
9872 --
9873 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9874 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9875 --
9876 -- bulk performance
9877 --
9878 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9879
9880 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9881 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9882
9883 -- 4955764
9884 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9885 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9886
9887 -- 4458381 Public Sector Enh
9888
9889 --
9890 -- set accounting attributes for the line type
9891 --
9892 l_entered_amt_idx := 23;
9893 l_accted_amt_idx := 28;
9894 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9895 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9896 l_rec_acct_attrs.array_char_value(1) := p_source_15;
9897 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
9898 l_rec_acct_attrs.array_num_value(2) :=
9899 xla_ae_sources_pkg.GetSystemSourceNum(
9900 p_source_code => 'XLA_EVENT_APPL_ID'
9901 , p_source_type_code => 'Y'
9902 , p_source_application_id => 602
9903 );
9904 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
9905 l_rec_acct_attrs.array_char_value(3) := p_source_17;
9906 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
9907 l_rec_acct_attrs.array_char_value(4) :=
9908 xla_ae_sources_pkg.GetSystemSourceChar(
9909 p_source_code => 'XLA_ENTITY_CODE'
9910 , p_source_type_code => 'Y'
9911 , p_source_application_id => 602
9912 );
9913 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
9914 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
9915 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
9916 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
9917 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
9918 l_rec_acct_attrs.array_num_value(7) := p_source_21;
9919 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9920 l_rec_acct_attrs.array_char_value(8) := p_source_22;
9921 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
9922 l_rec_acct_attrs.array_char_value(9) := p_source_23;
9923 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
9924 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
9925 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9926 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
9927 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
9928 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
9929 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
9930 l_rec_acct_attrs.array_char_value(13) := p_source_17;
9931 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
9932 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
9933 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
9934 l_rec_acct_attrs.array_num_value(15) := p_source_26;
9935 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
9936 l_rec_acct_attrs.array_char_value(16) := p_source_27;
9937 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
9938 l_rec_acct_attrs.array_num_value(17) := p_source_28;
9939 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
9940 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
9941 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
9942 l_rec_acct_attrs.array_num_value(19) := p_source_26;
9943 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
9944 l_rec_acct_attrs.array_char_value(20) := p_source_27;
9945 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
9946 l_rec_acct_attrs.array_num_value(21) := p_source_28;
9947 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
9948 l_rec_acct_attrs.array_char_value(22) := p_source_29;
9949 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
9950 l_rec_acct_attrs.array_num_value(23) := p_source_39;
9951 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
9952 l_rec_acct_attrs.array_char_value(24) := p_source_27;
9953 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
9954 l_rec_acct_attrs.array_date_value(25) := p_source_35;
9955 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
9956 l_rec_acct_attrs.array_num_value(26) := p_source_36;
9957 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
9958 l_rec_acct_attrs.array_char_value(27) := p_source_37;
9959 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
9960 l_rec_acct_attrs.array_num_value(28) := p_source_39;
9961 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
9962 l_rec_acct_attrs.array_char_value(29) := p_source_31;
9963 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
9964 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
9965 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
9966 l_rec_acct_attrs.array_char_value(31) := p_source_22;
9967 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
9968 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
9969 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
9970 l_rec_acct_attrs.array_num_value(33) := p_source_32;
9971 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
9972 l_rec_acct_attrs.array_num_value(34) := p_source_32;
9973
9974 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9975 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9976
9977 ---------------------------------------------------------------------------------------------------------------
9978 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9979 ---------------------------------------------------------------------------------------------------------------
9980 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9981
9982 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9983 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9984
9985 IF xla_accounting_cache_pkg.GetValueChar
9986 (p_source_code => 'LEDGER_CATEGORY_CODE'
9987 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9988 AND l_bflow_method_code = 'PRIOR_ENTRY'
9989 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9990 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9991 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9992 )
9993 THEN
9994 xla_ae_lines_pkg.BflowUpgEntry
9995 (p_business_method_code => l_bflow_method_code
9996 ,p_business_class_code => l_bflow_class_code
9997 ,p_balance_type => l_balance_type_code);
9998 ELSE
9999 NULL;
10000 -- No business flow processing for business flow method of NONE.
10001 END IF;
10002
10003 --
10004 -- call analytical criteria
10005 --
10006
10007 --
10008 -- call description
10009 --
10010
10011 xla_ae_lines_pkg.SetLineDescription(
10012 p_ae_header_id => l_ae_header_id
10013 ,p_description => Description_2 (
10014 p_application_id => p_application_id
10015 , p_ae_header_id => l_ae_header_id
10019
10016 , p_source_3 => p_source_3
10017 )
10018 );
10020
10021 --
10022 -- call ADRs
10023 -- Bug 4922099
10024 --
10025 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10026 (NVL(l_actual_upg_option, 'N') = 'O') OR
10027 (NVL(l_enc_upg_option, 'N') = 'O')
10028 )
10029 THEN
10030 NULL;
10031 --
10032 --
10033
10034 l_ccid := AcctDerRule_9(
10035 p_application_id => p_application_id
10036 , p_ae_header_id => l_ae_header_id
10037 , p_source_9 => p_source_9
10038 , x_transaction_coa_id => l_adr_transaction_coa_id
10039 , x_accounting_coa_id => l_adr_accounting_coa_id
10040 , x_value_type_code => l_adr_value_type_code
10041 , p_side => 'NA'
10042 );
10043
10044 xla_ae_lines_pkg.set_ccid(
10045 p_code_combination_id => l_ccid
10046 , p_value_type_code => l_adr_value_type_code
10047 , p_transaction_coa_id => l_adr_transaction_coa_id
10048 , p_accounting_coa_id => l_adr_accounting_coa_id
10049 , p_adr_code => 'FV_ACCOUNT_RULE'
10050 , p_adr_type_code => 'S'
10051 , p_component_type => l_component_type
10052 , p_component_code => l_component_code
10053 , p_component_type_code => l_component_type_code
10054 , p_component_appl_id => l_component_appl_id
10055 , p_amb_context_code => l_amb_context_code
10056 , p_side => 'NA'
10057 );
10058
10059
10060 l_segment := AcctDerRule_10(
10061 p_application_id => p_application_id
10062 , p_ae_header_id => l_ae_header_id
10063 , x_transaction_coa_id => l_adr_transaction_coa_id
10064 , x_accounting_coa_id => l_adr_accounting_coa_id
10065 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10066 , x_flex_value_set_id => l_adr_flex_value_set_id
10067 , x_value_type_code => l_adr_value_type_code
10068 , x_value_combination_id => l_adr_value_combination_id
10069 , x_value_segment_code => l_adr_value_segment_code
10070 , p_side => 'NA'
10071 , p_override_seg_flag => 'Y'
10072 );
10073
10074 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10075
10076 xla_ae_lines_pkg.set_segment(
10077 p_to_segment_code => 'GL_ACCOUNT'
10078 , p_segment_value => l_segment
10079 , p_from_segment_code => l_adr_value_segment_code
10080 , p_from_combination_id => l_adr_value_combination_id
10081 , p_value_type_code => l_adr_value_type_code
10082 , p_transaction_coa_id => l_adr_transaction_coa_id
10083 , p_accounting_coa_id => l_adr_accounting_coa_id
10084 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10085 , p_flex_value_set_id => l_adr_flex_value_set_id
10086 , p_adr_code => 'FV_PYA_431002_ANTCIPATED'
10087 , p_adr_type_code => 'S'
10088 , p_component_type => l_component_type
10089 , p_component_code => l_component_code
10090 , p_component_type_code => l_component_type_code
10091 , p_component_appl_id => l_component_appl_id
10092 , p_amb_context_code => l_amb_context_code
10093 , p_entity_code => 'PURCHASE_ORDER'
10094 , p_event_class_code => 'PO_PA'
10095 , p_side => 'NA'
10096 );
10097
10098 END IF;
10099
10100 --
10101 --
10102 END IF;
10103 --
10104 -- Bug 4922099
10105 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10106 (NVL(l_enc_upg_option, 'N') = 'O')
10107 ) AND
10108 (l_bflow_method_code = 'PRIOR_ENTRY')
10109 )
10110 THEN
10111 IF
10112 --
10113 1 = 2
10114 --
10115 THEN
10116 xla_accounting_err_pkg.build_message
10117 (p_appli_s_name => 'XLA'
10118 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10119 ,p_token_1 => 'LINE_NUMBER'
10120 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10121 ,p_token_2 => 'LINE_TYPE_NAME'
10122 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10123 l_component_type
10124 ,l_component_code
10125 ,l_component_type_code
10126 ,l_component_appl_id
10127 ,l_amb_context_code
10128 ,l_entity_code
10129 ,l_event_class_code
10130 )
10131 ,p_token_3 => 'OWNER'
10135 )
10132 ,p_value_3 => xla_lookups_pkg.get_meaning(
10133 p_lookup_type => 'XLA_OWNER_TYPE'
10134 ,p_lookup_code => l_component_type_code
10136 ,p_token_4 => 'PRODUCT_NAME'
10137 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10138 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10139 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10140 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10141 ,p_ae_header_id => NULL
10142 );
10143
10144 IF (C_LEVEL_ERROR>= g_log_level) THEN
10145 trace
10146 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10147 ,p_level => C_LEVEL_ERROR
10148 ,p_module => l_log_module);
10149 END IF;
10150 END IF;
10151 END IF;
10152 --
10153 --
10154 ------------------------------------------------------------------------------------------------
10155 -- 4219869 Business Flow
10156 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10157 -- Prior Entry. Currently, the following code is always generated.
10158 ------------------------------------------------------------------------------------------------
10159 XLA_AE_LINES_PKG.ValidateCurrentLine;
10160
10161 ------------------------------------------------------------------------------------
10162 -- 4219869 Business Flow
10163 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10164 ------------------------------------------------------------------------------------
10165 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10166
10167 ----------------------------------------------------------------------------------
10168 -- 4219869 Business Flow
10169 -- Update journal entry status -- Need to generate this within IF <condition>
10170 ----------------------------------------------------------------------------------
10171 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10172 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10173 ,p_balance_type_code => l_balance_type_code
10174 );
10175
10176 -------------------------------------------------------------------------------------------
10177 -- 4262811 - Generate the Accrual Reversal lines
10178 -------------------------------------------------------------------------------------------
10179 BEGIN
10180 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10181 (g_array_event(p_event_id).array_value_num('header_index'));
10182 IF l_acc_rev_flag IS NULL THEN
10183 l_acc_rev_flag := 'N';
10184 END IF;
10185 EXCEPTION
10186 WHEN OTHERS THEN
10187 l_acc_rev_flag := 'N';
10188 END;
10189 --
10190 IF (l_acc_rev_flag = 'Y') THEN
10191
10192 -- 4645092 ------------------------------------------------------------------------------
10193 -- To allow MPA report to determine if it should generate report process
10194 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10195 ------------------------------------------------------------------------------------------
10196
10197 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10198 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10199
10200 --
10201 -- Update the line information that should be overwritten
10202 --
10203 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10204 p_header_num => 1);
10205 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10206
10207 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10208
10209 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10210 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10211 END IF;
10212
10213 --
10214 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10215 --
10216 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10217 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10218 ELSE
10219 ---------------------------------------------------------------------------------------------------
10220 -- 4262811a Switch Sign
10221 ---------------------------------------------------------------------------------------------------
10222 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10223 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10224 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10225 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10226 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10227 -- 5132302
10228 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10229 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10230
10231 END IF;
10232
10233 -- 4955764
10234 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10235 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10236
10237
10238 XLA_AE_LINES_PKG.ValidateCurrentLine;
10239 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10240
10241 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10242 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10243 ,p_balance_type_code => l_balance_type_code);
10244
10245 END IF;
10246
10247 -----------------------------------------------------------------------------------------
10248 -- 4262811 Multiperiod Accounting
10249 -----------------------------------------------------------------------------------------
10250 -- No MPA option is assigned.
10251
10252
10253 END IF;
10254 END IF;
10255 --
10256
10257 --
10258 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10259 trace
10260 (p_msg => 'END of AcctLineType_26'
10261 ,p_level => C_LEVEL_PROCEDURE
10262 ,p_module => l_log_module);
10263 END IF;
10264 --
10265 EXCEPTION
10266 WHEN xla_exceptions_pkg.application_exception THEN
10267 RAISE;
10268 WHEN OTHERS THEN
10269 xla_exceptions_pkg.raise_message
10270 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_26');
10271 END AcctLineType_26;
10272 --
10273
10274 ---------------------------------------
10275 --
10276 -- PRIVATE FUNCTION
10277 -- AcctLineType_27
10278 --
10279 ---------------------------------------
10280 PROCEDURE AcctLineType_27 (
10281 p_application_id IN NUMBER
10282 ,p_event_id IN NUMBER
10283 ,p_calculate_acctd_flag IN VARCHAR2
10284 ,p_calculate_g_l_flag IN VARCHAR2
10285 ,p_actual_flag IN OUT VARCHAR2
10286 ,p_balance_type_code OUT VARCHAR2
10287 ,p_gain_or_loss_ref OUT VARCHAR2
10288
10289 --Journal entry Line Description
10290 , p_source_3 IN VARCHAR2
10291 --Federal Fund Expired Status
10292 , p_source_8 IN VARCHAR2
10293 --Budget Account
10294 , p_source_9 IN NUMBER
10295 --Federal Prior Year Flag
10296 , p_source_10 IN VARCHAR2
10297 --Federal Net Pya Adj Amt
10298 , p_source_11 IN NUMBER
10299 --Main Or Backing Code
10300 , p_source_13 IN VARCHAR2
10301 --PO Distribution Type
10302 , p_source_14 IN VARCHAR2
10303 --Accounting Reversal Flag
10304 , p_source_15 IN VARCHAR2
10305 --Distribution Link Type
10306 , p_source_17 IN VARCHAR2
10307 --PO Distribution Identifier
10308 , p_source_19 IN NUMBER
10309 --PO Header Identifier
10310 , p_source_20 IN NUMBER
10311 --Applied To Application Identifier
10312 , p_source_21 IN NUMBER
10313 --Applied To Distribution Link Type
10314 , p_source_22 IN VARCHAR2
10315 --Applied To Entity Code
10316 , p_source_23 IN VARCHAR2
10317 --Applied To Distribution Identifier 1
10318 , p_source_24 IN NUMBER
10319 --Applied To Header Identifier 1
10320 , p_source_25 IN NUMBER
10321 --Entered Amount
10322 , p_source_26 IN NUMBER
10323 --Currency Code
10324 , p_source_27 IN VARCHAR2
10325 --Accounted Amount
10326 , p_source_28 IN NUMBER
10327 --PO Encumbrance Upgrade Option
10328 , p_source_29 IN VARCHAR2
10329 --Federal Unanticipated Amt
10330 , p_source_30 IN NUMBER
10331 --JFMIP Reference
10332 , p_source_31 IN VARCHAR2
10333 --PO Upgrade Encumbrance Type Identifier
10334 , p_source_32 IN NUMBER
10335 --Currency Conversion Date
10336 , p_source_35 IN DATE
10337 --Currency Conversion Rate
10338 , p_source_36 IN NUMBER
10339 --Currency Conversion Type
10340 , p_source_37 IN VARCHAR2
10341 )
10342 IS
10343
10344 l_component_type VARCHAR2(80);
10345 l_component_code VARCHAR2(30);
10346 l_component_type_code VARCHAR2(1);
10347 l_component_appl_id INTEGER;
10348 l_amb_context_code VARCHAR2(30);
10349 l_entity_code VARCHAR2(30);
10350 l_event_class_code VARCHAR2(30);
10351 l_ae_header_id NUMBER;
10352 l_event_type_code VARCHAR2(30);
10353 l_line_definition_code VARCHAR2(30);
10354 l_line_definition_owner_code VARCHAR2(1);
10355 --
10356 -- adr variables
10357 l_segment VARCHAR2(30);
10358 l_ccid NUMBER;
10359 l_adr_transaction_coa_id NUMBER;
10360 l_adr_accounting_coa_id NUMBER;
10361 l_adr_flexfield_segment_code VARCHAR2(30);
10362 l_adr_flex_value_set_id NUMBER;
10363 l_adr_value_type_code VARCHAR2(30);
10364 l_adr_value_combination_id NUMBER;
10365 l_adr_value_segment_code VARCHAR2(30);
10366
10367 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10368 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10369 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10370 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10371
10372 -- 4262811 Variables ------------------------------------------------------------------------------------------
10373 l_entered_amt_idx NUMBER;
10374 l_accted_amt_idx NUMBER;
10375 l_acc_rev_flag VARCHAR2(1);
10376 l_accrual_line_num NUMBER;
10377 l_tmp_amt NUMBER;
10378 l_acc_rev_natural_side_code VARCHAR2(1);
10379
10380 l_num_entries NUMBER;
10381 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10382 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10383 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10384 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10385 l_recog_line_1 NUMBER;
10386 l_recog_line_2 NUMBER;
10387
10388 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10389 l_bflow_applied_to_amt NUMBER; -- 5132302
10390 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10391
10392 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10393
10394 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10395 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10396
10397 ---------------------------------------------------------------------------------------------------------------
10398
10399
10400 --
10401 -- bulk performance
10402 --
10403 l_balance_type_code VARCHAR2(1);
10404 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10405 l_log_module VARCHAR2(240);
10406
10407 --
10408 -- Upgrade strategy
10409 --
10410 l_actual_upg_option VARCHAR2(1);
10411 l_enc_upg_option VARCHAR2(1);
10412
10413 --
10414 BEGIN
10415 --
10416 IF g_log_enabled THEN
10417 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_27';
10418 END IF;
10419 --
10420 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10421
10422 trace
10423 (p_msg => 'BEGIN of AcctLineType_27'
10424 ,p_level => C_LEVEL_PROCEDURE
10425 ,p_module => l_log_module);
10426
10427 END IF;
10428 --
10429 l_component_type := 'AMB_JLT';
10430 l_component_code := 'FV_PO_PYA_DW_UNANTICIPATED_CR';
10431 l_component_type_code := 'S';
10432 l_component_appl_id := 201;
10433 l_amb_context_code := 'DEFAULT';
10434 l_entity_code := 'PURCHASE_ORDER';
10435 l_event_class_code := 'PO_PA';
10436 l_event_type_code := 'PO_PA_ALL';
10437 l_line_definition_owner_code := 'S';
10438 l_line_definition_code := 'FV_PO_ALL';
10439 --
10440 l_balance_type_code := 'A';
10441 l_segment := NULL;
10442 l_ccid := NULL;
10443 l_adr_transaction_coa_id := NULL;
10444 l_adr_accounting_coa_id := NULL;
10445 l_adr_flexfield_segment_code := NULL;
10446 l_adr_flex_value_set_id := NULL;
10447 l_adr_value_type_code := NULL;
10448 l_adr_value_combination_id := NULL;
10449 l_adr_value_segment_code := NULL;
10450
10451 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
10452 l_bflow_class_code := ''; -- 4219869 Business Flow
10453 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
10454 l_budgetary_control_flag := 'Y';
10455
10456 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10457 l_bflow_applied_to_amt := NULL; -- 5132302
10458 l_entered_amt_idx := NULL; -- 4262811
10459 l_accted_amt_idx := NULL; -- 4262811
10460 l_acc_rev_flag := NULL; -- 4262811
10461 l_accrual_line_num := NULL; -- 4262811
10462 l_tmp_amt := NULL; -- 4262811
10463 --
10464
10465 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10466 l_balance_type_code <> 'B' THEN
10467 IF NVL(
10468 xla_ae_sources_pkg.GetSystemSourceChar(
10469 p_source_code => 'XLA_EVENT_TYPE_CODE'
10470 , p_source_type_code => 'Y'
10471 , p_source_application_id => 602
10472 ),'
10473 ') = 'PO_PA_RESERVED' AND
10474 NVL(p_source_13,'
10475 ') = 'M' AND
10476 (NVL(p_source_14,'
10477 ') <> 'AGREEMENT' OR
10478 p_source_14 IS NULL ) AND
10479 NVL(p_source_10,'
10480 ') = 'Y' AND
10481 p_source_11 < 0 AND
10482 NVL(p_source_30,9E125) <> 0 AND
10483 p_source_30 IS NOT NULL
10484 THEN
10485
10486 --
10487 XLA_AE_LINES_PKG.SetNewLine;
10488
10489 p_balance_type_code := l_balance_type_code;
10490 -- set the flag so later we will know whether the gain loss line needs to be created
10491
10492 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10493 p_actual_flag :='A';
10494 END IF;
10495
10496 --
10497 -- bulk performance
10498 --
10499 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10500 p_header_num => 0); -- 4262811
10501 --
10502 -- set accounting line options
10503 --
10504 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10505 p_natural_side_code => 'C'
10506 , p_gain_or_loss_flag => 'N'
10507 , p_gl_transfer_mode_code => 'S'
10508 , p_acct_entry_type_code => 'A'
10509 , p_switch_side_flag => 'Y'
10510 , p_merge_duplicate_code => 'N'
10511 );
10512 --
10513 l_acc_rev_natural_side_code := 'D'; -- 4262811
10514 --
10515 --
10516 -- set accounting line type info
10517 --
10518 xla_ae_lines_pkg.SetAcctLineType
10519 (p_component_type => l_component_type
10520 ,p_event_type_code => l_event_type_code
10521 ,p_line_definition_owner_code => l_line_definition_owner_code
10522 ,p_line_definition_code => l_line_definition_code
10523 ,p_accounting_line_code => l_component_code
10524 ,p_accounting_line_type_code => l_component_type_code
10525 ,p_accounting_line_appl_id => l_component_appl_id
10526 ,p_amb_context_code => l_amb_context_code
10527 ,p_entity_code => l_entity_code
10528 ,p_event_class_code => l_event_class_code);
10529 --
10530 -- set accounting class
10531 --
10532 xla_ae_lines_pkg.SetAcctClass(
10533 p_accounting_class_code => 'PURCHASE_ORDER'
10534 , p_ae_header_id => l_ae_header_id
10535 );
10536
10537 --
10538 -- set rounding class
10539 --
10540 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10541 'PURCHASE_ORDER';
10542
10543 --
10544 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10545 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10546 --
10547 -- bulk performance
10548 --
10549 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10550
10551 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10552 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10553
10554 -- 4955764
10555 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10556 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10557
10558 -- 4458381 Public Sector Enh
10559
10560 --
10561 -- set accounting attributes for the line type
10562 --
10563 l_entered_amt_idx := 23;
10564 l_accted_amt_idx := 28;
10565 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10566 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10567 l_rec_acct_attrs.array_char_value(1) := p_source_15;
10568 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10569 l_rec_acct_attrs.array_num_value(2) :=
10570 xla_ae_sources_pkg.GetSystemSourceNum(
10571 p_source_code => 'XLA_EVENT_APPL_ID'
10572 , p_source_type_code => 'Y'
10573 , p_source_application_id => 602
10574 );
10575 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10576 l_rec_acct_attrs.array_char_value(3) := p_source_17;
10577 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10578 l_rec_acct_attrs.array_char_value(4) :=
10579 xla_ae_sources_pkg.GetSystemSourceChar(
10580 p_source_code => 'XLA_ENTITY_CODE'
10581 , p_source_type_code => 'Y'
10582 , p_source_application_id => 602
10583 );
10584 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10585 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
10586 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10587 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
10588 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
10589 l_rec_acct_attrs.array_num_value(7) := p_source_21;
10590 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10591 l_rec_acct_attrs.array_char_value(8) := p_source_22;
10592 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
10593 l_rec_acct_attrs.array_char_value(9) := p_source_23;
10594 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
10595 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
10596 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10597 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
10598 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
10599 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
10600 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
10601 l_rec_acct_attrs.array_char_value(13) := p_source_17;
10602 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
10603 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
10604 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
10605 l_rec_acct_attrs.array_num_value(15) := p_source_26;
10606 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
10607 l_rec_acct_attrs.array_char_value(16) := p_source_27;
10608 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
10609 l_rec_acct_attrs.array_num_value(17) := p_source_28;
10610 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
10611 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
10612 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
10613 l_rec_acct_attrs.array_num_value(19) := p_source_26;
10614 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
10615 l_rec_acct_attrs.array_char_value(20) := p_source_27;
10616 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
10617 l_rec_acct_attrs.array_num_value(21) := p_source_28;
10618 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
10619 l_rec_acct_attrs.array_char_value(22) := p_source_29;
10620 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
10621 l_rec_acct_attrs.array_num_value(23) := p_source_30;
10622 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
10623 l_rec_acct_attrs.array_char_value(24) := p_source_27;
10624 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
10625 l_rec_acct_attrs.array_date_value(25) := p_source_35;
10626 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
10627 l_rec_acct_attrs.array_num_value(26) := p_source_36;
10628 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
10629 l_rec_acct_attrs.array_char_value(27) := p_source_37;
10630 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
10631 l_rec_acct_attrs.array_num_value(28) := p_source_30;
10632 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
10636 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
10633 l_rec_acct_attrs.array_char_value(29) := p_source_31;
10634 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
10635 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
10637 l_rec_acct_attrs.array_char_value(31) := p_source_22;
10638 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
10639 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
10640 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
10641 l_rec_acct_attrs.array_num_value(33) := p_source_32;
10642 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
10643 l_rec_acct_attrs.array_num_value(34) := p_source_32;
10644
10645 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10646 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10647
10648 ---------------------------------------------------------------------------------------------------------------
10649 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10650 ---------------------------------------------------------------------------------------------------------------
10651 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10652
10653 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10654 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10655
10656 IF xla_accounting_cache_pkg.GetValueChar
10657 (p_source_code => 'LEDGER_CATEGORY_CODE'
10658 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10659 AND l_bflow_method_code = 'PRIOR_ENTRY'
10660 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10661 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10662 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10663 )
10664 THEN
10665 xla_ae_lines_pkg.BflowUpgEntry
10666 (p_business_method_code => l_bflow_method_code
10667 ,p_business_class_code => l_bflow_class_code
10668 ,p_balance_type => l_balance_type_code);
10669 ELSE
10670 NULL;
10671 -- No business flow processing for business flow method of NONE.
10672 END IF;
10673
10674 --
10675 -- call analytical criteria
10676 --
10677
10678 --
10679 -- call description
10680 --
10681
10682 xla_ae_lines_pkg.SetLineDescription(
10683 p_ae_header_id => l_ae_header_id
10684 ,p_description => Description_2 (
10685 p_application_id => p_application_id
10686 , p_ae_header_id => l_ae_header_id
10687 , p_source_3 => p_source_3
10688 )
10689 );
10690
10691
10692 --
10693 -- call ADRs
10694 -- Bug 4922099
10695 --
10696 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10697 (NVL(l_actual_upg_option, 'N') = 'O') OR
10698 (NVL(l_enc_upg_option, 'N') = 'O')
10699 )
10700 THEN
10701 NULL;
10702 --
10703 --
10704
10705 l_ccid := AcctDerRule_9(
10706 p_application_id => p_application_id
10707 , p_ae_header_id => l_ae_header_id
10708 , p_source_9 => p_source_9
10709 , x_transaction_coa_id => l_adr_transaction_coa_id
10710 , x_accounting_coa_id => l_adr_accounting_coa_id
10711 , x_value_type_code => l_adr_value_type_code
10712 , p_side => 'NA'
10713 );
10714
10715 xla_ae_lines_pkg.set_ccid(
10716 p_code_combination_id => l_ccid
10717 , p_value_type_code => l_adr_value_type_code
10718 , p_transaction_coa_id => l_adr_transaction_coa_id
10719 , p_accounting_coa_id => l_adr_accounting_coa_id
10720 , p_adr_code => 'FV_ACCOUNT_RULE'
10721 , p_adr_type_code => 'S'
10722 , p_component_type => l_component_type
10723 , p_component_code => l_component_code
10724 , p_component_type_code => l_component_type_code
10725 , p_component_appl_id => l_component_appl_id
10726 , p_amb_context_code => l_amb_context_code
10727 , p_side => 'NA'
10728 );
10729
10730
10731 l_segment := AcctDerRule_11(
10732 p_application_id => p_application_id
10733 , p_ae_header_id => l_ae_header_id
10734 , p_source_8 => p_source_8
10735 , x_transaction_coa_id => l_adr_transaction_coa_id
10736 , x_accounting_coa_id => l_adr_accounting_coa_id
10737 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10738 , x_flex_value_set_id => l_adr_flex_value_set_id
10739 , x_value_type_code => l_adr_value_type_code
10740 , x_value_combination_id => l_adr_value_combination_id
10741 , x_value_segment_code => l_adr_value_segment_code
10742 , p_side => 'NA'
10743 , p_override_seg_flag => 'Y'
10744 );
10745
10746 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10747
10748 xla_ae_lines_pkg.set_segment(
10749 p_to_segment_code => 'GL_ACCOUNT'
10750 , p_segment_value => l_segment
10751 , p_from_segment_code => l_adr_value_segment_code
10752 , p_from_combination_id => l_adr_value_combination_id
10756 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10753 , p_value_type_code => l_adr_value_type_code
10754 , p_transaction_coa_id => l_adr_transaction_coa_id
10755 , p_accounting_coa_id => l_adr_accounting_coa_id
10757 , p_flex_value_set_id => l_adr_flex_value_set_id
10758 , p_adr_code => 'FV_PYA_445002_UNANTICIPATED'
10759 , p_adr_type_code => 'S'
10760 , p_component_type => l_component_type
10761 , p_component_code => l_component_code
10762 , p_component_type_code => l_component_type_code
10763 , p_component_appl_id => l_component_appl_id
10764 , p_amb_context_code => l_amb_context_code
10765 , p_entity_code => 'PURCHASE_ORDER'
10766 , p_event_class_code => 'PO_PA'
10767 , p_side => 'NA'
10768 );
10769
10770 END IF;
10771
10772 --
10773 --
10774 END IF;
10775 --
10776 -- Bug 4922099
10777 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10778 (NVL(l_enc_upg_option, 'N') = 'O')
10779 ) AND
10780 (l_bflow_method_code = 'PRIOR_ENTRY')
10781 )
10782 THEN
10783 IF
10784 --
10785 1 = 2
10786 --
10787 THEN
10788 xla_accounting_err_pkg.build_message
10789 (p_appli_s_name => 'XLA'
10790 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10791 ,p_token_1 => 'LINE_NUMBER'
10792 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10793 ,p_token_2 => 'LINE_TYPE_NAME'
10794 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10795 l_component_type
10796 ,l_component_code
10797 ,l_component_type_code
10798 ,l_component_appl_id
10799 ,l_amb_context_code
10800 ,l_entity_code
10801 ,l_event_class_code
10802 )
10803 ,p_token_3 => 'OWNER'
10804 ,p_value_3 => xla_lookups_pkg.get_meaning(
10805 p_lookup_type => 'XLA_OWNER_TYPE'
10806 ,p_lookup_code => l_component_type_code
10807 )
10808 ,p_token_4 => 'PRODUCT_NAME'
10809 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10810 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10811 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10812 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10813 ,p_ae_header_id => NULL
10814 );
10815
10816 IF (C_LEVEL_ERROR>= g_log_level) THEN
10817 trace
10818 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10819 ,p_level => C_LEVEL_ERROR
10820 ,p_module => l_log_module);
10821 END IF;
10822 END IF;
10823 END IF;
10824 --
10825 --
10826 ------------------------------------------------------------------------------------------------
10827 -- 4219869 Business Flow
10828 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10829 -- Prior Entry. Currently, the following code is always generated.
10830 ------------------------------------------------------------------------------------------------
10831 XLA_AE_LINES_PKG.ValidateCurrentLine;
10832
10833 ------------------------------------------------------------------------------------
10834 -- 4219869 Business Flow
10835 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10836 ------------------------------------------------------------------------------------
10837 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10838
10839 ----------------------------------------------------------------------------------
10840 -- 4219869 Business Flow
10841 -- Update journal entry status -- Need to generate this within IF <condition>
10842 ----------------------------------------------------------------------------------
10843 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10844 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10845 ,p_balance_type_code => l_balance_type_code
10846 );
10847
10848 -------------------------------------------------------------------------------------------
10849 -- 4262811 - Generate the Accrual Reversal lines
10850 -------------------------------------------------------------------------------------------
10851 BEGIN
10852 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10853 (g_array_event(p_event_id).array_value_num('header_index'));
10854 IF l_acc_rev_flag IS NULL THEN
10855 l_acc_rev_flag := 'N';
10856 END IF;
10857 EXCEPTION
10858 WHEN OTHERS THEN
10859 l_acc_rev_flag := 'N';
10860 END;
10861 --
10862 IF (l_acc_rev_flag = 'Y') THEN
10863
10864 -- 4645092 ------------------------------------------------------------------------------
10865 -- To allow MPA report to determine if it should generate report process
10866 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10867 ------------------------------------------------------------------------------------------
10868
10869 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10870 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10871
10872 --
10873 -- Update the line information that should be overwritten
10874 --
10875 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10876 p_header_num => 1);
10877 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10878
10879 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10880
10881 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10882 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10883 END IF;
10884
10885 --
10886 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10887 --
10888 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10889 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10890 ELSE
10891 ---------------------------------------------------------------------------------------------------
10892 -- 4262811a Switch Sign
10893 ---------------------------------------------------------------------------------------------------
10894 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10895 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10896 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10897 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10898 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10899 -- 5132302
10900 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10901 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10902
10903 END IF;
10904
10905 -- 4955764
10906 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10907 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10908
10909
10910 XLA_AE_LINES_PKG.ValidateCurrentLine;
10911 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10912
10913 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10914 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10915 ,p_balance_type_code => l_balance_type_code);
10916
10917 END IF;
10918
10919 -----------------------------------------------------------------------------------------
10920 -- 4262811 Multiperiod Accounting
10921 -----------------------------------------------------------------------------------------
10922 -- No MPA option is assigned.
10923
10924
10925 END IF;
10926 END IF;
10927 --
10928
10929 --
10930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10931 trace
10932 (p_msg => 'END of AcctLineType_27'
10933 ,p_level => C_LEVEL_PROCEDURE
10934 ,p_module => l_log_module);
10935 END IF;
10936 --
10937 EXCEPTION
10938 WHEN xla_exceptions_pkg.application_exception THEN
10939 RAISE;
10940 WHEN OTHERS THEN
10941 xla_exceptions_pkg.raise_message
10945
10942 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_27');
10943 END AcctLineType_27;
10944 --
10946 ---------------------------------------
10947 --
10948 -- PRIVATE FUNCTION
10949 -- AcctLineType_28
10950 --
10951 ---------------------------------------
10952 PROCEDURE AcctLineType_28 (
10953 p_application_id IN NUMBER
10954 ,p_event_id IN NUMBER
10955 ,p_calculate_acctd_flag IN VARCHAR2
10956 ,p_calculate_g_l_flag IN VARCHAR2
10957 ,p_actual_flag IN OUT VARCHAR2
10958 ,p_balance_type_code OUT VARCHAR2
10959 ,p_gain_or_loss_ref OUT VARCHAR2
10960
10961 --Journal entry Line Description
10962 , p_source_3 IN VARCHAR2
10963 --Federal Fund Expired Status
10964 , p_source_8 IN VARCHAR2
10965 --Budget Account
10966 , p_source_9 IN NUMBER
10967 --Federal Prior Year Flag
10968 , p_source_10 IN VARCHAR2
10969 --Main Or Backing Code
10970 , p_source_13 IN VARCHAR2
10971 --PO Distribution Type
10972 , p_source_14 IN VARCHAR2
10973 --Accounting Reversal Flag
10974 , p_source_15 IN VARCHAR2
10975 --Distribution Link Type
10976 , p_source_17 IN VARCHAR2
10977 --PO Distribution Identifier
10978 , p_source_19 IN NUMBER
10979 --PO Header Identifier
10980 , p_source_20 IN NUMBER
10981 --Applied To Application Identifier
10982 , p_source_21 IN NUMBER
10983 --Applied To Distribution Link Type
10984 , p_source_22 IN VARCHAR2
10985 --Applied To Entity Code
10986 , p_source_23 IN VARCHAR2
10987 --Applied To Distribution Identifier 1
10988 , p_source_24 IN NUMBER
10989 --Applied To Header Identifier 1
10990 , p_source_25 IN NUMBER
10991 --Entered Amount
10992 , p_source_26 IN NUMBER
10993 --Currency Code
10994 , p_source_27 IN VARCHAR2
10995 --Accounted Amount
10996 , p_source_28 IN NUMBER
10997 --PO Encumbrance Upgrade Option
10998 , p_source_29 IN VARCHAR2
10999 --JFMIP Reference
11000 , p_source_31 IN VARCHAR2
11001 --PO Upgrade Encumbrance Type Identifier
11002 , p_source_32 IN NUMBER
11003 --Currency Conversion Date
11004 , p_source_35 IN DATE
11005 --Currency Conversion Rate
11006 , p_source_36 IN NUMBER
11007 --Currency Conversion Type
11008 , p_source_37 IN VARCHAR2
11009 )
11010 IS
11011
11012 l_component_type VARCHAR2(80);
11013 l_component_code VARCHAR2(30);
11014 l_component_type_code VARCHAR2(1);
11015 l_component_appl_id INTEGER;
11016 l_amb_context_code VARCHAR2(30);
11017 l_entity_code VARCHAR2(30);
11018 l_event_class_code VARCHAR2(30);
11019 l_ae_header_id NUMBER;
11020 l_event_type_code VARCHAR2(30);
11021 l_line_definition_code VARCHAR2(30);
11022 l_line_definition_owner_code VARCHAR2(1);
11023 --
11024 -- adr variables
11025 l_segment VARCHAR2(30);
11026 l_ccid NUMBER;
11027 l_adr_transaction_coa_id NUMBER;
11028 l_adr_accounting_coa_id NUMBER;
11029 l_adr_flexfield_segment_code VARCHAR2(30);
11030 l_adr_flex_value_set_id NUMBER;
11031 l_adr_value_type_code VARCHAR2(30);
11032 l_adr_value_combination_id NUMBER;
11033 l_adr_value_segment_code VARCHAR2(30);
11034
11035 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11036 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11037 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11038 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11039
11040 -- 4262811 Variables ------------------------------------------------------------------------------------------
11041 l_entered_amt_idx NUMBER;
11042 l_accted_amt_idx NUMBER;
11043 l_acc_rev_flag VARCHAR2(1);
11044 l_accrual_line_num NUMBER;
11045 l_tmp_amt NUMBER;
11046 l_acc_rev_natural_side_code VARCHAR2(1);
11047
11048 l_num_entries NUMBER;
11049 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11050 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11051 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11052 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11053 l_recog_line_1 NUMBER;
11054 l_recog_line_2 NUMBER;
11055
11056 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11057 l_bflow_applied_to_amt NUMBER; -- 5132302
11058 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11059
11060 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11061
11062 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11063 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11064
11065 ---------------------------------------------------------------------------------------------------------------
11066
11067
11068 --
11069 -- bulk performance
11070 --
11071 l_balance_type_code VARCHAR2(1);
11072 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11073 l_log_module VARCHAR2(240);
11074
11075 --
11076 -- Upgrade strategy
11077 --
11078 l_actual_upg_option VARCHAR2(1);
11079 l_enc_upg_option VARCHAR2(1);
11080
11081 --
11082 BEGIN
11083 --
11084 IF g_log_enabled THEN
11085 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_28';
11086 END IF;
11087 --
11088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11089
11090 trace
11091 (p_msg => 'BEGIN of AcctLineType_28'
11092 ,p_level => C_LEVEL_PROCEDURE
11093 ,p_module => l_log_module);
11094
11095 END IF;
11096 --
11097 l_component_type := 'AMB_JLT';
11098 l_component_code := 'FV_PO_PYA_FINAL_CLOSE_CR';
11099 l_component_type_code := 'S';
11100 l_component_appl_id := 201;
11101 l_amb_context_code := 'DEFAULT';
11102 l_entity_code := 'PURCHASE_ORDER';
11103 l_event_class_code := 'PO_PA';
11104 l_event_type_code := 'PO_PA_ALL';
11105 l_line_definition_owner_code := 'S';
11106 l_line_definition_code := 'FV_PO_ALL';
11107 --
11108 l_balance_type_code := 'A';
11109 l_segment := NULL;
11110 l_ccid := NULL;
11111 l_adr_transaction_coa_id := NULL;
11112 l_adr_accounting_coa_id := NULL;
11113 l_adr_flexfield_segment_code := NULL;
11114 l_adr_flex_value_set_id := NULL;
11115 l_adr_value_type_code := NULL;
11116 l_adr_value_combination_id := NULL;
11117 l_adr_value_segment_code := NULL;
11118
11119 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11120 l_bflow_class_code := ''; -- 4219869 Business Flow
11121 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11122 l_budgetary_control_flag := 'Y';
11123
11124 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11125 l_bflow_applied_to_amt := NULL; -- 5132302
11126 l_entered_amt_idx := NULL; -- 4262811
11127 l_accted_amt_idx := NULL; -- 4262811
11128 l_acc_rev_flag := NULL; -- 4262811
11129 l_accrual_line_num := NULL; -- 4262811
11130 l_tmp_amt := NULL; -- 4262811
11131 --
11132
11133 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11134 l_balance_type_code <> 'B' THEN
11135 IF NVL(
11136 xla_ae_sources_pkg.GetSystemSourceChar(
11137 p_source_code => 'XLA_EVENT_TYPE_CODE'
11138 , p_source_type_code => 'Y'
11139 , p_source_application_id => 602
11140 ),'
11141 ') = 'PO_PA_FINAL_CLOSED' AND
11142 NVL(p_source_13,'
11143 ') = 'M' AND
11144 (NVL(p_source_14,'
11145 ') <> 'AGREEMENT' OR
11146 p_source_14 IS NULL ) AND
11147 NVL(p_source_10,'
11148 ') = 'Y'
11149 THEN
11150
11151 --
11152 XLA_AE_LINES_PKG.SetNewLine;
11153
11154 p_balance_type_code := l_balance_type_code;
11155 -- set the flag so later we will know whether the gain loss line needs to be created
11156
11157 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11158 p_actual_flag :='A';
11159 END IF;
11160
11161 --
11162 -- bulk performance
11163 --
11164 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11165 p_header_num => 0); -- 4262811
11166 --
11167 -- set accounting line options
11168 --
11169 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11170 p_natural_side_code => 'C'
11171 , p_gain_or_loss_flag => 'N'
11172 , p_gl_transfer_mode_code => 'S'
11173 , p_acct_entry_type_code => 'A'
11174 , p_switch_side_flag => 'N'
11175 , p_merge_duplicate_code => 'N'
11176 );
11177 --
11178 l_acc_rev_natural_side_code := 'D'; -- 4262811
11179 --
11180 --
11181 -- set accounting line type info
11182 --
11183 xla_ae_lines_pkg.SetAcctLineType
11184 (p_component_type => l_component_type
11185 ,p_event_type_code => l_event_type_code
11186 ,p_line_definition_owner_code => l_line_definition_owner_code
11187 ,p_line_definition_code => l_line_definition_code
11188 ,p_accounting_line_code => l_component_code
11189 ,p_accounting_line_type_code => l_component_type_code
11190 ,p_accounting_line_appl_id => l_component_appl_id
11191 ,p_amb_context_code => l_amb_context_code
11192 ,p_entity_code => l_entity_code
11193 ,p_event_class_code => l_event_class_code);
11194 --
11195 -- set accounting class
11196 --
11197 xla_ae_lines_pkg.SetAcctClass(
11198 p_accounting_class_code => 'PURCHASE_ORDER'
11199 , p_ae_header_id => l_ae_header_id
11200 );
11201
11202 --
11203 -- set rounding class
11204 --
11205 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11206 'PURCHASE_ORDER';
11207
11208 --
11209 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11210 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11211 --
11212 -- bulk performance
11213 --
11214 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11215
11216 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11217 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11218
11219 -- 4955764
11220 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11221 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11222
11223 -- 4458381 Public Sector Enh
11224
11225 --
11226 -- set accounting attributes for the line type
11227 --
11228 l_entered_amt_idx := 23;
11229 l_accted_amt_idx := 28;
11230 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11231 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11232 l_rec_acct_attrs.array_char_value(1) := p_source_15;
11233 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11234 l_rec_acct_attrs.array_num_value(2) :=
11235 xla_ae_sources_pkg.GetSystemSourceNum(
11236 p_source_code => 'XLA_EVENT_APPL_ID'
11237 , p_source_type_code => 'Y'
11238 , p_source_application_id => 602
11239 );
11240 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11241 l_rec_acct_attrs.array_char_value(3) := p_source_17;
11242 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11243 l_rec_acct_attrs.array_char_value(4) :=
11244 xla_ae_sources_pkg.GetSystemSourceChar(
11245 p_source_code => 'XLA_ENTITY_CODE'
11246 , p_source_type_code => 'Y'
11247 , p_source_application_id => 602
11248 );
11249 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11250 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
11251 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11252 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
11253 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
11254 l_rec_acct_attrs.array_num_value(7) := p_source_21;
11255 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11256 l_rec_acct_attrs.array_char_value(8) := p_source_22;
11257 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
11258 l_rec_acct_attrs.array_char_value(9) := p_source_23;
11259 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
11260 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
11261 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11262 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
11263 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
11264 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
11265 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
11266 l_rec_acct_attrs.array_char_value(13) := p_source_17;
11267 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
11268 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
11269 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
11270 l_rec_acct_attrs.array_num_value(15) := p_source_26;
11271 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
11272 l_rec_acct_attrs.array_char_value(16) := p_source_27;
11273 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
11274 l_rec_acct_attrs.array_num_value(17) := p_source_28;
11275 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
11276 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
11277 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
11278 l_rec_acct_attrs.array_num_value(19) := p_source_26;
11279 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
11280 l_rec_acct_attrs.array_char_value(20) := p_source_27;
11281 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
11282 l_rec_acct_attrs.array_num_value(21) := p_source_28;
11283 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
11284 l_rec_acct_attrs.array_char_value(22) := p_source_29;
11285 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
11286 l_rec_acct_attrs.array_num_value(23) := p_source_26;
11287 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
11288 l_rec_acct_attrs.array_char_value(24) := p_source_27;
11289 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
11290 l_rec_acct_attrs.array_date_value(25) := p_source_35;
11291 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
11292 l_rec_acct_attrs.array_num_value(26) := p_source_36;
11293 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
11294 l_rec_acct_attrs.array_char_value(27) := p_source_37;
11295 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
11296 l_rec_acct_attrs.array_num_value(28) := p_source_28;
11297 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
11298 l_rec_acct_attrs.array_char_value(29) := p_source_31;
11299 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
11300 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
11301 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
11302 l_rec_acct_attrs.array_char_value(31) := p_source_22;
11303 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
11304 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
11305 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
11306 l_rec_acct_attrs.array_num_value(33) := p_source_32;
11307 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
11308 l_rec_acct_attrs.array_num_value(34) := p_source_32;
11309
11310 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11311 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11312
11313 ---------------------------------------------------------------------------------------------------------------
11314 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11315 ---------------------------------------------------------------------------------------------------------------
11316 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11317
11318 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11319 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11320
11321 IF xla_accounting_cache_pkg.GetValueChar
11322 (p_source_code => 'LEDGER_CATEGORY_CODE'
11323 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11324 AND l_bflow_method_code = 'PRIOR_ENTRY'
11325 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11326 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11327 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11328 )
11329 THEN
11330 xla_ae_lines_pkg.BflowUpgEntry
11331 (p_business_method_code => l_bflow_method_code
11332 ,p_business_class_code => l_bflow_class_code
11333 ,p_balance_type => l_balance_type_code);
11334 ELSE
11335 NULL;
11336 -- No business flow processing for business flow method of NONE.
11337 END IF;
11338
11339 --
11340 -- call analytical criteria
11341 --
11342
11343 --
11344 -- call description
11345 --
11346
11347 xla_ae_lines_pkg.SetLineDescription(
11348 p_ae_header_id => l_ae_header_id
11349 ,p_description => Description_2 (
11350 p_application_id => p_application_id
11351 , p_ae_header_id => l_ae_header_id
11352 , p_source_3 => p_source_3
11353 )
11354 );
11355
11356
11357 --
11358 -- call ADRs
11359 -- Bug 4922099
11360 --
11361 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11362 (NVL(l_actual_upg_option, 'N') = 'O') OR
11363 (NVL(l_enc_upg_option, 'N') = 'O')
11364 )
11365 THEN
11366 NULL;
11367 --
11368 --
11369
11370 l_ccid := AcctDerRule_9(
11371 p_application_id => p_application_id
11372 , p_ae_header_id => l_ae_header_id
11373 , p_source_9 => p_source_9
11374 , x_transaction_coa_id => l_adr_transaction_coa_id
11375 , x_accounting_coa_id => l_adr_accounting_coa_id
11376 , x_value_type_code => l_adr_value_type_code
11377 , p_side => 'NA'
11378 );
11379
11380 xla_ae_lines_pkg.set_ccid(
11381 p_code_combination_id => l_ccid
11382 , p_value_type_code => l_adr_value_type_code
11383 , p_transaction_coa_id => l_adr_transaction_coa_id
11384 , p_accounting_coa_id => l_adr_accounting_coa_id
11385 , p_adr_code => 'FV_ACCOUNT_RULE'
11386 , p_adr_type_code => 'S'
11387 , p_component_type => l_component_type
11388 , p_component_code => l_component_code
11389 , p_component_type_code => l_component_type_code
11390 , p_component_appl_id => l_component_appl_id
11391 , p_amb_context_code => l_amb_context_code
11392 , p_side => 'NA'
11393 );
11394
11395
11396 l_segment := AcctDerRule_11(
11397 p_application_id => p_application_id
11398 , p_ae_header_id => l_ae_header_id
11399 , p_source_8 => p_source_8
11400 , x_transaction_coa_id => l_adr_transaction_coa_id
11401 , x_accounting_coa_id => l_adr_accounting_coa_id
11402 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11403 , x_flex_value_set_id => l_adr_flex_value_set_id
11404 , x_value_type_code => l_adr_value_type_code
11405 , x_value_combination_id => l_adr_value_combination_id
11406 , x_value_segment_code => l_adr_value_segment_code
11407 , p_side => 'NA'
11408 , p_override_seg_flag => 'Y'
11409 );
11410
11411 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11412
11413 xla_ae_lines_pkg.set_segment(
11414 p_to_segment_code => 'GL_ACCOUNT'
11415 , p_segment_value => l_segment
11416 , p_from_segment_code => l_adr_value_segment_code
11417 , p_from_combination_id => l_adr_value_combination_id
11418 , p_value_type_code => l_adr_value_type_code
11419 , p_transaction_coa_id => l_adr_transaction_coa_id
11420 , p_accounting_coa_id => l_adr_accounting_coa_id
11421 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11422 , p_flex_value_set_id => l_adr_flex_value_set_id
11423 , p_adr_code => 'FV_PYA_445002_UNANTICIPATED'
11424 , p_adr_type_code => 'S'
11425 , p_component_type => l_component_type
11426 , p_component_code => l_component_code
11427 , p_component_type_code => l_component_type_code
11428 , p_component_appl_id => l_component_appl_id
11429 , p_amb_context_code => l_amb_context_code
11430 , p_entity_code => 'PURCHASE_ORDER'
11431 , p_event_class_code => 'PO_PA'
11432 , p_side => 'NA'
11433 );
11434
11435 END IF;
11436
11437 --
11438 --
11439 END IF;
11440 --
11441 -- Bug 4922099
11442 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11443 (NVL(l_enc_upg_option, 'N') = 'O')
11444 ) AND
11445 (l_bflow_method_code = 'PRIOR_ENTRY')
11446 )
11447 THEN
11448 IF
11449 --
11450 1 = 2
11451 --
11452 THEN
11453 xla_accounting_err_pkg.build_message
11454 (p_appli_s_name => 'XLA'
11455 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11456 ,p_token_1 => 'LINE_NUMBER'
11457 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11458 ,p_token_2 => 'LINE_TYPE_NAME'
11459 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11463 ,l_component_appl_id
11460 l_component_type
11461 ,l_component_code
11462 ,l_component_type_code
11464 ,l_amb_context_code
11465 ,l_entity_code
11466 ,l_event_class_code
11467 )
11468 ,p_token_3 => 'OWNER'
11469 ,p_value_3 => xla_lookups_pkg.get_meaning(
11470 p_lookup_type => 'XLA_OWNER_TYPE'
11471 ,p_lookup_code => l_component_type_code
11472 )
11473 ,p_token_4 => 'PRODUCT_NAME'
11474 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11475 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11476 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11477 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11478 ,p_ae_header_id => NULL
11479 );
11480
11481 IF (C_LEVEL_ERROR>= g_log_level) THEN
11482 trace
11483 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11484 ,p_level => C_LEVEL_ERROR
11485 ,p_module => l_log_module);
11486 END IF;
11487 END IF;
11488 END IF;
11489 --
11490 --
11491 ------------------------------------------------------------------------------------------------
11492 -- 4219869 Business Flow
11493 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11494 -- Prior Entry. Currently, the following code is always generated.
11495 ------------------------------------------------------------------------------------------------
11496 XLA_AE_LINES_PKG.ValidateCurrentLine;
11497
11498 ------------------------------------------------------------------------------------
11499 -- 4219869 Business Flow
11500 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11501 ------------------------------------------------------------------------------------
11502 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11503
11504 ----------------------------------------------------------------------------------
11505 -- 4219869 Business Flow
11506 -- Update journal entry status -- Need to generate this within IF <condition>
11507 ----------------------------------------------------------------------------------
11508 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11509 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11510 ,p_balance_type_code => l_balance_type_code
11511 );
11512
11513 -------------------------------------------------------------------------------------------
11514 -- 4262811 - Generate the Accrual Reversal lines
11515 -------------------------------------------------------------------------------------------
11516 BEGIN
11517 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11518 (g_array_event(p_event_id).array_value_num('header_index'));
11519 IF l_acc_rev_flag IS NULL THEN
11520 l_acc_rev_flag := 'N';
11521 END IF;
11522 EXCEPTION
11523 WHEN OTHERS THEN
11524 l_acc_rev_flag := 'N';
11525 END;
11526 --
11527 IF (l_acc_rev_flag = 'Y') THEN
11528
11529 -- 4645092 ------------------------------------------------------------------------------
11530 -- To allow MPA report to determine if it should generate report process
11531 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11532 ------------------------------------------------------------------------------------------
11533
11534 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11535 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11536
11537 --
11538 -- Update the line information that should be overwritten
11539 --
11540 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11541 p_header_num => 1);
11542 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11543
11544 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11545
11546 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11547 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11548 END IF;
11549
11550 --
11551 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11552 --
11553 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11557 -- 4262811a Switch Sign
11554 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11555 ELSE
11556 ---------------------------------------------------------------------------------------------------
11558 ---------------------------------------------------------------------------------------------------
11559 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11560 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11561 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11562 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11563 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11564 -- 5132302
11565 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11566 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11567
11568 END IF;
11569
11570 -- 4955764
11571 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11572 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11573
11574
11575 XLA_AE_LINES_PKG.ValidateCurrentLine;
11576 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11577
11578 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11579 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11580 ,p_balance_type_code => l_balance_type_code);
11581
11582 END IF;
11583
11584 -----------------------------------------------------------------------------------------
11585 -- 4262811 Multiperiod Accounting
11586 -----------------------------------------------------------------------------------------
11587 -- No MPA option is assigned.
11588
11589
11590 END IF;
11591 END IF;
11592 --
11593
11594 --
11595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11596 trace
11597 (p_msg => 'END of AcctLineType_28'
11598 ,p_level => C_LEVEL_PROCEDURE
11599 ,p_module => l_log_module);
11600 END IF;
11601 --
11602 EXCEPTION
11603 WHEN xla_exceptions_pkg.application_exception THEN
11604 RAISE;
11605 WHEN OTHERS THEN
11606 xla_exceptions_pkg.raise_message
11607 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_28');
11608 END AcctLineType_28;
11609 --
11610
11611 ---------------------------------------
11612 --
11613 -- PRIVATE FUNCTION
11614 -- AcctLineType_29
11615 --
11616 ---------------------------------------
11617 PROCEDURE AcctLineType_29 (
11618 p_application_id IN NUMBER
11619 ,p_event_id IN NUMBER
11620 ,p_calculate_acctd_flag IN VARCHAR2
11621 ,p_calculate_g_l_flag IN VARCHAR2
11622 ,p_actual_flag IN OUT VARCHAR2
11623 ,p_balance_type_code OUT VARCHAR2
11624 ,p_gain_or_loss_ref OUT VARCHAR2
11625
11626 --Journal entry Line Description
11627 , p_source_3 IN VARCHAR2
11628 --Budget Account
11629 , p_source_9 IN NUMBER
11630 --Federal Prior Year Flag
11631 , p_source_10 IN VARCHAR2
11632 --Main Or Backing Code
11633 , p_source_13 IN VARCHAR2
11634 --PO Distribution Type
11635 , p_source_14 IN VARCHAR2
11636 --Accounting Reversal Flag
11637 , p_source_15 IN VARCHAR2
11638 --Distribution Link Type
11639 , p_source_17 IN VARCHAR2
11640 --PO Distribution Identifier
11641 , p_source_19 IN NUMBER
11642 --PO Header Identifier
11643 , p_source_20 IN NUMBER
11644 --Applied To Application Identifier
11645 , p_source_21 IN NUMBER
11646 --Applied To Distribution Link Type
11647 , p_source_22 IN VARCHAR2
11648 --Applied To Entity Code
11649 , p_source_23 IN VARCHAR2
11650 --Applied To Distribution Identifier 1
11651 , p_source_24 IN NUMBER
11652 --Applied To Header Identifier 1
11653 , p_source_25 IN NUMBER
11654 --Entered Amount
11655 , p_source_26 IN NUMBER
11656 --Currency Code
11657 , p_source_27 IN VARCHAR2
11658 --Accounted Amount
11659 , p_source_28 IN NUMBER
11660 --PO Encumbrance Upgrade Option
11661 , p_source_29 IN VARCHAR2
11662 --JFMIP Reference
11663 , p_source_31 IN VARCHAR2
11664 --PO Upgrade Encumbrance Type Identifier
11665 , p_source_32 IN NUMBER
11666 --Currency Conversion Date
11667 , p_source_35 IN DATE
11668 --Currency Conversion Rate
11669 , p_source_36 IN NUMBER
11670 --Currency Conversion Type
11671 , p_source_37 IN VARCHAR2
11672 )
11673 IS
11674
11675 l_component_type VARCHAR2(80);
11676 l_component_code VARCHAR2(30);
11677 l_component_type_code VARCHAR2(1);
11678 l_component_appl_id INTEGER;
11679 l_amb_context_code VARCHAR2(30);
11680 l_entity_code VARCHAR2(30);
11681 l_event_class_code VARCHAR2(30);
11682 l_ae_header_id NUMBER;
11683 l_event_type_code VARCHAR2(30);
11684 l_line_definition_code VARCHAR2(30);
11685 l_line_definition_owner_code VARCHAR2(1);
11686 --
11687 -- adr variables
11688 l_segment VARCHAR2(30);
11692 l_adr_flexfield_segment_code VARCHAR2(30);
11689 l_ccid NUMBER;
11690 l_adr_transaction_coa_id NUMBER;
11691 l_adr_accounting_coa_id NUMBER;
11693 l_adr_flex_value_set_id NUMBER;
11694 l_adr_value_type_code VARCHAR2(30);
11695 l_adr_value_combination_id NUMBER;
11696 l_adr_value_segment_code VARCHAR2(30);
11697
11698 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11699 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11700 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11701 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11702
11703 -- 4262811 Variables ------------------------------------------------------------------------------------------
11704 l_entered_amt_idx NUMBER;
11705 l_accted_amt_idx NUMBER;
11706 l_acc_rev_flag VARCHAR2(1);
11707 l_accrual_line_num NUMBER;
11708 l_tmp_amt NUMBER;
11709 l_acc_rev_natural_side_code VARCHAR2(1);
11710
11711 l_num_entries NUMBER;
11712 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11713 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11714 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11715 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11716 l_recog_line_1 NUMBER;
11717 l_recog_line_2 NUMBER;
11718
11719 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11720 l_bflow_applied_to_amt NUMBER; -- 5132302
11721 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11722
11723 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11724
11725 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11726 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11727
11728 ---------------------------------------------------------------------------------------------------------------
11729
11730
11731 --
11732 -- bulk performance
11733 --
11734 l_balance_type_code VARCHAR2(1);
11735 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11736 l_log_module VARCHAR2(240);
11737
11738 --
11739 -- Upgrade strategy
11740 --
11741 l_actual_upg_option VARCHAR2(1);
11742 l_enc_upg_option VARCHAR2(1);
11743
11744 --
11745 BEGIN
11746 --
11747 IF g_log_enabled THEN
11748 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_29';
11749 END IF;
11750 --
11751 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11752
11753 trace
11754 (p_msg => 'BEGIN of AcctLineType_29'
11755 ,p_level => C_LEVEL_PROCEDURE
11756 ,p_module => l_log_module);
11757
11758 END IF;
11759 --
11760 l_component_type := 'AMB_JLT';
11761 l_component_code := 'FV_PO_PYA_FINAL_CLOSE_DR';
11762 l_component_type_code := 'S';
11763 l_component_appl_id := 201;
11764 l_amb_context_code := 'DEFAULT';
11765 l_entity_code := 'PURCHASE_ORDER';
11766 l_event_class_code := 'PO_PA';
11767 l_event_type_code := 'PO_PA_ALL';
11768 l_line_definition_owner_code := 'S';
11769 l_line_definition_code := 'FV_PO_ALL';
11770 --
11771 l_balance_type_code := 'A';
11772 l_segment := NULL;
11773 l_ccid := NULL;
11774 l_adr_transaction_coa_id := NULL;
11775 l_adr_accounting_coa_id := NULL;
11776 l_adr_flexfield_segment_code := NULL;
11777 l_adr_flex_value_set_id := NULL;
11778 l_adr_value_type_code := NULL;
11779 l_adr_value_combination_id := NULL;
11780 l_adr_value_segment_code := NULL;
11781
11782 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11783 l_bflow_class_code := ''; -- 4219869 Business Flow
11784 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11785 l_budgetary_control_flag := 'Y';
11786
11787 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11788 l_bflow_applied_to_amt := NULL; -- 5132302
11789 l_entered_amt_idx := NULL; -- 4262811
11790 l_accted_amt_idx := NULL; -- 4262811
11791 l_acc_rev_flag := NULL; -- 4262811
11792 l_accrual_line_num := NULL; -- 4262811
11793 l_tmp_amt := NULL; -- 4262811
11794 --
11795
11796 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11797 l_balance_type_code <> 'B' THEN
11798 IF NVL(
11799 xla_ae_sources_pkg.GetSystemSourceChar(
11800 p_source_code => 'XLA_EVENT_TYPE_CODE'
11801 , p_source_type_code => 'Y'
11802 , p_source_application_id => 602
11803 ),'
11804 ') = 'PO_PA_FINAL_CLOSED' AND
11805 NVL(p_source_13,'
11806 ') = 'M' AND
11807 (NVL(p_source_14,'
11808 ') <> 'AGREEMENT' OR
11809 p_source_14 IS NULL ) AND
11810 NVL(p_source_10,'
11811 ') = 'Y'
11812 THEN
11813
11814 --
11815 XLA_AE_LINES_PKG.SetNewLine;
11816
11817 p_balance_type_code := l_balance_type_code;
11818 -- set the flag so later we will know whether the gain loss line needs to be created
11819
11820 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11821 p_actual_flag :='A';
11822 END IF;
11823
11824 --
11825 -- bulk performance
11826 --
11827 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11828 p_header_num => 0); -- 4262811
11829 --
11830 -- set accounting line options
11831 --
11832 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11833 p_natural_side_code => 'D'
11834 , p_gain_or_loss_flag => 'N'
11835 , p_gl_transfer_mode_code => 'S'
11836 , p_acct_entry_type_code => 'A'
11837 , p_switch_side_flag => 'N'
11838 , p_merge_duplicate_code => 'N'
11839 );
11840 --
11841 l_acc_rev_natural_side_code := 'C'; -- 4262811
11842 --
11843 --
11844 -- set accounting line type info
11845 --
11846 xla_ae_lines_pkg.SetAcctLineType
11847 (p_component_type => l_component_type
11848 ,p_event_type_code => l_event_type_code
11849 ,p_line_definition_owner_code => l_line_definition_owner_code
11850 ,p_line_definition_code => l_line_definition_code
11851 ,p_accounting_line_code => l_component_code
11852 ,p_accounting_line_type_code => l_component_type_code
11853 ,p_accounting_line_appl_id => l_component_appl_id
11854 ,p_amb_context_code => l_amb_context_code
11855 ,p_entity_code => l_entity_code
11856 ,p_event_class_code => l_event_class_code);
11857 --
11858 -- set accounting class
11859 --
11860 xla_ae_lines_pkg.SetAcctClass(
11861 p_accounting_class_code => 'PURCHASE_ORDER'
11862 , p_ae_header_id => l_ae_header_id
11863 );
11864
11865 --
11866 -- set rounding class
11867 --
11868 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11869 'PURCHASE_ORDER';
11870
11871 --
11872 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11873 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11874 --
11875 -- bulk performance
11876 --
11877 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11878
11879 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11880 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11881
11882 -- 4955764
11883 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11884 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11885
11886 -- 4458381 Public Sector Enh
11887
11888 --
11889 -- set accounting attributes for the line type
11890 --
11891 l_entered_amt_idx := 23;
11892 l_accted_amt_idx := 28;
11893 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11894 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11895 l_rec_acct_attrs.array_char_value(1) := p_source_15;
11896 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11897 l_rec_acct_attrs.array_num_value(2) :=
11898 xla_ae_sources_pkg.GetSystemSourceNum(
11899 p_source_code => 'XLA_EVENT_APPL_ID'
11900 , p_source_type_code => 'Y'
11901 , p_source_application_id => 602
11902 );
11903 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11904 l_rec_acct_attrs.array_char_value(3) := p_source_17;
11905 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11906 l_rec_acct_attrs.array_char_value(4) :=
11907 xla_ae_sources_pkg.GetSystemSourceChar(
11908 p_source_code => 'XLA_ENTITY_CODE'
11909 , p_source_type_code => 'Y'
11910 , p_source_application_id => 602
11911 );
11912 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11913 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
11914 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11915 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
11916 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
11917 l_rec_acct_attrs.array_num_value(7) := p_source_21;
11918 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11919 l_rec_acct_attrs.array_char_value(8) := p_source_22;
11920 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
11921 l_rec_acct_attrs.array_char_value(9) := p_source_23;
11922 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
11923 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
11924 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11925 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
11926 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
11927 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
11928 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
11929 l_rec_acct_attrs.array_char_value(13) := p_source_17;
11930 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
11931 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
11932 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
11933 l_rec_acct_attrs.array_num_value(15) := p_source_26;
11934 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
11935 l_rec_acct_attrs.array_char_value(16) := p_source_27;
11936 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
11937 l_rec_acct_attrs.array_num_value(17) := p_source_28;
11938 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
11939 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
11940 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
11941 l_rec_acct_attrs.array_num_value(19) := p_source_26;
11942 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
11943 l_rec_acct_attrs.array_char_value(20) := p_source_27;
11944 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
11945 l_rec_acct_attrs.array_num_value(21) := p_source_28;
11946 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
11947 l_rec_acct_attrs.array_char_value(22) := p_source_29;
11948 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
11949 l_rec_acct_attrs.array_num_value(23) := p_source_26;
11950 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
11951 l_rec_acct_attrs.array_char_value(24) := p_source_27;
11952 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
11953 l_rec_acct_attrs.array_date_value(25) := p_source_35;
11954 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
11955 l_rec_acct_attrs.array_num_value(26) := p_source_36;
11956 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
11957 l_rec_acct_attrs.array_char_value(27) := p_source_37;
11958 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
11959 l_rec_acct_attrs.array_num_value(28) := p_source_28;
11960 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
11961 l_rec_acct_attrs.array_char_value(29) := p_source_31;
11962 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
11963 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
11964 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
11965 l_rec_acct_attrs.array_char_value(31) := p_source_22;
11966 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
11967 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
11968 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
11969 l_rec_acct_attrs.array_num_value(33) := p_source_32;
11970 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
11971 l_rec_acct_attrs.array_num_value(34) := p_source_32;
11972
11973 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11974 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11975
11976 ---------------------------------------------------------------------------------------------------------------
11977 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11978 ---------------------------------------------------------------------------------------------------------------
11979 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11980
11981 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11982 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11983
11984 IF xla_accounting_cache_pkg.GetValueChar
11985 (p_source_code => 'LEDGER_CATEGORY_CODE'
11986 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11987 AND l_bflow_method_code = 'PRIOR_ENTRY'
11988 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11989 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11990 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11991 )
11992 THEN
11993 xla_ae_lines_pkg.BflowUpgEntry
11994 (p_business_method_code => l_bflow_method_code
11998 NULL;
11995 ,p_business_class_code => l_bflow_class_code
11996 ,p_balance_type => l_balance_type_code);
11997 ELSE
11999 -- No business flow processing for business flow method of NONE.
12000 END IF;
12001
12002 --
12003 -- call analytical criteria
12004 --
12005
12006 --
12007 -- call description
12008 --
12009
12010 xla_ae_lines_pkg.SetLineDescription(
12011 p_ae_header_id => l_ae_header_id
12012 ,p_description => Description_2 (
12013 p_application_id => p_application_id
12014 , p_ae_header_id => l_ae_header_id
12015 , p_source_3 => p_source_3
12016 )
12017 );
12018
12019
12020 --
12021 -- call ADRs
12022 -- Bug 4922099
12023 --
12024 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12025 (NVL(l_actual_upg_option, 'N') = 'O') OR
12026 (NVL(l_enc_upg_option, 'N') = 'O')
12027 )
12028 THEN
12029 NULL;
12030 --
12031 --
12032
12033 l_ccid := AcctDerRule_9(
12034 p_application_id => p_application_id
12035 , p_ae_header_id => l_ae_header_id
12036 , p_source_9 => p_source_9
12037 , x_transaction_coa_id => l_adr_transaction_coa_id
12038 , x_accounting_coa_id => l_adr_accounting_coa_id
12039 , x_value_type_code => l_adr_value_type_code
12040 , p_side => 'NA'
12041 );
12042
12043 xla_ae_lines_pkg.set_ccid(
12044 p_code_combination_id => l_ccid
12045 , p_value_type_code => l_adr_value_type_code
12046 , p_transaction_coa_id => l_adr_transaction_coa_id
12047 , p_accounting_coa_id => l_adr_accounting_coa_id
12048 , p_adr_code => 'FV_ACCOUNT_RULE'
12049 , p_adr_type_code => 'S'
12050 , p_component_type => l_component_type
12051 , p_component_code => l_component_code
12052 , p_component_type_code => l_component_type_code
12053 , p_component_appl_id => l_component_appl_id
12054 , p_amb_context_code => l_amb_context_code
12055 , p_side => 'NA'
12056 );
12057
12058
12059 l_segment := AcctDerRule_13(
12060 p_application_id => p_application_id
12061 , p_ae_header_id => l_ae_header_id
12062 , x_transaction_coa_id => l_adr_transaction_coa_id
12063 , x_accounting_coa_id => l_adr_accounting_coa_id
12064 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12065 , x_flex_value_set_id => l_adr_flex_value_set_id
12066 , x_value_type_code => l_adr_value_type_code
12067 , x_value_combination_id => l_adr_value_combination_id
12068 , x_value_segment_code => l_adr_value_segment_code
12069 , p_side => 'NA'
12070 , p_override_seg_flag => 'Y'
12071 );
12072
12073 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12074
12075 xla_ae_lines_pkg.set_segment(
12076 p_to_segment_code => 'GL_ACCOUNT'
12077 , p_segment_value => l_segment
12078 , p_from_segment_code => l_adr_value_segment_code
12079 , p_from_combination_id => l_adr_value_combination_id
12080 , p_value_type_code => l_adr_value_type_code
12081 , p_transaction_coa_id => l_adr_transaction_coa_id
12082 , p_accounting_coa_id => l_adr_accounting_coa_id
12083 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12084 , p_flex_value_set_id => l_adr_flex_value_set_id
12085 , p_adr_code => 'FV_PYA_FINAL_CLOSE_487101'
12086 , p_adr_type_code => 'S'
12087 , p_component_type => l_component_type
12088 , p_component_code => l_component_code
12089 , p_component_type_code => l_component_type_code
12090 , p_component_appl_id => l_component_appl_id
12091 , p_amb_context_code => l_amb_context_code
12092 , p_entity_code => 'PURCHASE_ORDER'
12093 , p_event_class_code => 'PO_PA'
12094 , p_side => 'NA'
12095 );
12096
12097 END IF;
12098
12099 --
12100 --
12101 END IF;
12102 --
12103 -- Bug 4922099
12104 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12105 (NVL(l_enc_upg_option, 'N') = 'O')
12106 ) AND
12107 (l_bflow_method_code = 'PRIOR_ENTRY')
12108 )
12109 THEN
12110 IF
12111 --
12112 1 = 2
12113 --
12114 THEN
12115 xla_accounting_err_pkg.build_message
12116 (p_appli_s_name => 'XLA'
12117 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12118 ,p_token_1 => 'LINE_NUMBER'
12119 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12120 ,p_token_2 => 'LINE_TYPE_NAME'
12121 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12122 l_component_type
12123 ,l_component_code
12124 ,l_component_type_code
12125 ,l_component_appl_id
12126 ,l_amb_context_code
12127 ,l_entity_code
12128 ,l_event_class_code
12129 )
12130 ,p_token_3 => 'OWNER'
12131 ,p_value_3 => xla_lookups_pkg.get_meaning(
12132 p_lookup_type => 'XLA_OWNER_TYPE'
12133 ,p_lookup_code => l_component_type_code
12134 )
12135 ,p_token_4 => 'PRODUCT_NAME'
12136 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12137 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12138 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12139 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12140 ,p_ae_header_id => NULL
12141 );
12142
12143 IF (C_LEVEL_ERROR>= g_log_level) THEN
12144 trace
12145 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12146 ,p_level => C_LEVEL_ERROR
12147 ,p_module => l_log_module);
12148 END IF;
12149 END IF;
12150 END IF;
12151 --
12152 --
12153 ------------------------------------------------------------------------------------------------
12154 -- 4219869 Business Flow
12155 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12156 -- Prior Entry. Currently, the following code is always generated.
12157 ------------------------------------------------------------------------------------------------
12158 XLA_AE_LINES_PKG.ValidateCurrentLine;
12159
12160 ------------------------------------------------------------------------------------
12161 -- 4219869 Business Flow
12162 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12163 ------------------------------------------------------------------------------------
12164 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12165
12166 ----------------------------------------------------------------------------------
12167 -- 4219869 Business Flow
12168 -- Update journal entry status -- Need to generate this within IF <condition>
12169 ----------------------------------------------------------------------------------
12170 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12171 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12172 ,p_balance_type_code => l_balance_type_code
12173 );
12174
12175 -------------------------------------------------------------------------------------------
12176 -- 4262811 - Generate the Accrual Reversal lines
12177 -------------------------------------------------------------------------------------------
12178 BEGIN
12179 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12180 (g_array_event(p_event_id).array_value_num('header_index'));
12181 IF l_acc_rev_flag IS NULL THEN
12182 l_acc_rev_flag := 'N';
12183 END IF;
12184 EXCEPTION
12185 WHEN OTHERS THEN
12186 l_acc_rev_flag := 'N';
12187 END;
12188 --
12189 IF (l_acc_rev_flag = 'Y') THEN
12190
12191 -- 4645092 ------------------------------------------------------------------------------
12192 -- To allow MPA report to determine if it should generate report process
12193 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12194 ------------------------------------------------------------------------------------------
12195
12196 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12197 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12198
12199 --
12200 -- Update the line information that should be overwritten
12201 --
12202 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12203 p_header_num => 1);
12204 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12205
12206 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12207
12208 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12209 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12210 END IF;
12211
12212 --
12213 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12214 --
12215 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12216 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12217 ELSE
12218 ---------------------------------------------------------------------------------------------------
12219 -- 4262811a Switch Sign
12220 ---------------------------------------------------------------------------------------------------
12221 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12222 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12223 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12224 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12225 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12226 -- 5132302
12227 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12228 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12229
12230 END IF;
12231
12232 -- 4955764
12233 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12234 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12235
12236
12237 XLA_AE_LINES_PKG.ValidateCurrentLine;
12238 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12239
12240 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12241 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12242 ,p_balance_type_code => l_balance_type_code);
12243
12244 END IF;
12245
12246 -----------------------------------------------------------------------------------------
12247 -- 4262811 Multiperiod Accounting
12248 -----------------------------------------------------------------------------------------
12249 -- No MPA option is assigned.
12250
12251
12252 END IF;
12253 END IF;
12254 --
12255
12256 --
12257 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12258 trace
12259 (p_msg => 'END of AcctLineType_29'
12260 ,p_level => C_LEVEL_PROCEDURE
12261 ,p_module => l_log_module);
12262 END IF;
12263 --
12264 EXCEPTION
12265 WHEN xla_exceptions_pkg.application_exception THEN
12266 RAISE;
12267 WHEN OTHERS THEN
12268 xla_exceptions_pkg.raise_message
12269 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_29');
12270 END AcctLineType_29;
12271 --
12272
12273 ---------------------------------------
12274 --
12275 -- PRIVATE FUNCTION
12276 -- AcctLineType_30
12277 --
12278 ---------------------------------------
12279 PROCEDURE AcctLineType_30 (
12280 p_application_id IN NUMBER
12281 ,p_event_id IN NUMBER
12282 ,p_calculate_acctd_flag IN VARCHAR2
12283 ,p_calculate_g_l_flag IN VARCHAR2
12284 ,p_actual_flag IN OUT VARCHAR2
12285 ,p_balance_type_code OUT VARCHAR2
12286 ,p_gain_or_loss_ref OUT VARCHAR2
12287
12288 --Journal entry Line Description
12289 , p_source_3 IN VARCHAR2
12290 --Budget Account
12291 , p_source_9 IN NUMBER
12292 --Federal Prior Year Flag
12293 , p_source_10 IN VARCHAR2
12294 --Main Or Backing Code
12295 , p_source_13 IN VARCHAR2
12296 --PO Distribution Type
12297 , p_source_14 IN VARCHAR2
12298 --Accounting Reversal Flag
12299 , p_source_15 IN VARCHAR2
12300 --Distribution Link Type
12301 , p_source_17 IN VARCHAR2
12302 --PO Distribution Identifier
12303 , p_source_19 IN NUMBER
12304 --PO Header Identifier
12305 , p_source_20 IN NUMBER
12306 --Applied To Application Identifier
12307 , p_source_21 IN NUMBER
12308 --Applied To Distribution Link Type
12309 , p_source_22 IN VARCHAR2
12310 --Applied To Entity Code
12311 , p_source_23 IN VARCHAR2
12312 --Applied To Distribution Identifier 1
12313 , p_source_24 IN NUMBER
12314 --Applied To Header Identifier 1
12315 , p_source_25 IN NUMBER
12316 --Entered Amount
12317 , p_source_26 IN NUMBER
12318 --Currency Code
12319 , p_source_27 IN VARCHAR2
12320 --Accounted Amount
12321 , p_source_28 IN NUMBER
12322 --PO Encumbrance Upgrade Option
12323 , p_source_29 IN VARCHAR2
12324 --JFMIP Reference
12325 , p_source_31 IN VARCHAR2
12326 --PO Upgrade Encumbrance Type Identifier
12327 , p_source_32 IN NUMBER
12328 --Currency Conversion Date
12329 , p_source_35 IN DATE
12330 --Currency Conversion Rate
12331 , p_source_36 IN NUMBER
12332 --Currency Conversion Type
12333 , p_source_37 IN VARCHAR2
12334 --Federal Pya Amt
12335 , p_source_40 IN NUMBER
12336 )
12337 IS
12338
12339 l_component_type VARCHAR2(80);
12340 l_component_code VARCHAR2(30);
12341 l_component_type_code VARCHAR2(1);
12342 l_component_appl_id INTEGER;
12343 l_amb_context_code VARCHAR2(30);
12344 l_entity_code VARCHAR2(30);
12345 l_event_class_code VARCHAR2(30);
12346 l_ae_header_id NUMBER;
12347 l_event_type_code VARCHAR2(30);
12348 l_line_definition_code VARCHAR2(30);
12349 l_line_definition_owner_code VARCHAR2(1);
12350 --
12351 -- adr variables
12352 l_segment VARCHAR2(30);
12353 l_ccid NUMBER;
12354 l_adr_transaction_coa_id NUMBER;
12355 l_adr_accounting_coa_id NUMBER;
12356 l_adr_flexfield_segment_code VARCHAR2(30);
12357 l_adr_flex_value_set_id NUMBER;
12358 l_adr_value_type_code VARCHAR2(30);
12359 l_adr_value_combination_id NUMBER;
12360 l_adr_value_segment_code VARCHAR2(30);
12361
12362 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12363 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12364 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12365 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12366
12367 -- 4262811 Variables ------------------------------------------------------------------------------------------
12368 l_entered_amt_idx NUMBER;
12369 l_accted_amt_idx NUMBER;
12370 l_acc_rev_flag VARCHAR2(1);
12371 l_accrual_line_num NUMBER;
12372 l_tmp_amt NUMBER;
12373 l_acc_rev_natural_side_code VARCHAR2(1);
12374
12375 l_num_entries NUMBER;
12376 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12377 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12378 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12379 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12380 l_recog_line_1 NUMBER;
12381 l_recog_line_2 NUMBER;
12382
12383 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12384 l_bflow_applied_to_amt NUMBER; -- 5132302
12385 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12386
12387 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12388
12389 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12390 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12391
12392 ---------------------------------------------------------------------------------------------------------------
12393
12394
12395 --
12396 -- bulk performance
12397 --
12398 l_balance_type_code VARCHAR2(1);
12399 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12403 -- Upgrade strategy
12400 l_log_module VARCHAR2(240);
12401
12402 --
12404 --
12405 l_actual_upg_option VARCHAR2(1);
12406 l_enc_upg_option VARCHAR2(1);
12407
12408 --
12409 BEGIN
12410 --
12411 IF g_log_enabled THEN
12412 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_30';
12413 END IF;
12414 --
12415 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12416
12417 trace
12418 (p_msg => 'BEGIN of AcctLineType_30'
12419 ,p_level => C_LEVEL_PROCEDURE
12420 ,p_module => l_log_module);
12421
12422 END IF;
12423 --
12424 l_component_type := 'AMB_JLT';
12425 l_component_code := 'FV_PO_PYA_RESERVE_CR';
12426 l_component_type_code := 'S';
12427 l_component_appl_id := 201;
12428 l_amb_context_code := 'DEFAULT';
12429 l_entity_code := 'PURCHASE_ORDER';
12430 l_event_class_code := 'PO_PA';
12431 l_event_type_code := 'PO_PA_ALL';
12432 l_line_definition_owner_code := 'S';
12433 l_line_definition_code := 'FV_PO_ALL';
12434 --
12435 l_balance_type_code := 'A';
12436 l_segment := NULL;
12437 l_ccid := NULL;
12438 l_adr_transaction_coa_id := NULL;
12439 l_adr_accounting_coa_id := NULL;
12440 l_adr_flexfield_segment_code := NULL;
12441 l_adr_flex_value_set_id := NULL;
12442 l_adr_value_type_code := NULL;
12443 l_adr_value_combination_id := NULL;
12444 l_adr_value_segment_code := NULL;
12445
12446 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12447 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
12448 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12449 l_budgetary_control_flag := 'Y';
12450
12451 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12452 l_bflow_applied_to_amt := NULL; -- 5132302
12453 l_entered_amt_idx := NULL; -- 4262811
12454 l_accted_amt_idx := NULL; -- 4262811
12455 l_acc_rev_flag := NULL; -- 4262811
12456 l_accrual_line_num := NULL; -- 4262811
12457 l_tmp_amt := NULL; -- 4262811
12458 --
12459
12460 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12461 l_balance_type_code <> 'B' THEN
12462 IF NVL(
12463 xla_ae_sources_pkg.GetSystemSourceChar(
12464 p_source_code => 'XLA_EVENT_TYPE_CODE'
12465 , p_source_type_code => 'Y'
12466 , p_source_application_id => 602
12467 ),'
12468 ') = 'PO_PA_RESERVED' AND
12469 NVL(p_source_13,'
12470 ') = 'M' AND
12471 (NVL(p_source_14,'
12472 ') <> 'AGREEMENT' OR
12473 p_source_14 IS NULL ) AND
12474 NVL(p_source_10,'
12475 ') = 'Y' AND
12476 NVL(p_source_40,9E125) <> 0 AND
12477 p_source_40 IS NOT NULL
12478 THEN
12479
12480 --
12481 XLA_AE_LINES_PKG.SetNewLine;
12482
12483 p_balance_type_code := l_balance_type_code;
12484 -- set the flag so later we will know whether the gain loss line needs to be created
12485
12486 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12487 p_actual_flag :='A';
12488 END IF;
12489
12490 --
12491 -- bulk performance
12492 --
12493 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12494 p_header_num => 0); -- 4262811
12495 --
12496 -- set accounting line options
12497 --
12498 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12499 p_natural_side_code => 'C'
12500 , p_gain_or_loss_flag => 'N'
12501 , p_gl_transfer_mode_code => 'S'
12502 , p_acct_entry_type_code => 'A'
12503 , p_switch_side_flag => 'Y'
12504 , p_merge_duplicate_code => 'N'
12505 );
12506 --
12507 l_acc_rev_natural_side_code := 'D'; -- 4262811
12508 --
12509 --
12510 -- set accounting line type info
12511 --
12512 xla_ae_lines_pkg.SetAcctLineType
12513 (p_component_type => l_component_type
12514 ,p_event_type_code => l_event_type_code
12515 ,p_line_definition_owner_code => l_line_definition_owner_code
12516 ,p_line_definition_code => l_line_definition_code
12517 ,p_accounting_line_code => l_component_code
12518 ,p_accounting_line_type_code => l_component_type_code
12519 ,p_accounting_line_appl_id => l_component_appl_id
12520 ,p_amb_context_code => l_amb_context_code
12521 ,p_entity_code => l_entity_code
12522 ,p_event_class_code => l_event_class_code);
12523 --
12524 -- set accounting class
12525 --
12526 xla_ae_lines_pkg.SetAcctClass(
12527 p_accounting_class_code => 'PURCHASE_ORDER'
12528 , p_ae_header_id => l_ae_header_id
12529 );
12530
12531 --
12532 -- set rounding class
12533 --
12534 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12535 'PURCHASE_ORDER';
12536
12537 --
12538 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12539 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12540 --
12541 -- bulk performance
12542 --
12543 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12544
12548 -- 4955764
12545 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12546 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12547
12549 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12550 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12551
12552 -- 4458381 Public Sector Enh
12553
12554 --
12555 -- set accounting attributes for the line type
12556 --
12557 l_entered_amt_idx := 23;
12558 l_accted_amt_idx := 28;
12559 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12560 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12561 l_rec_acct_attrs.array_char_value(1) := p_source_15;
12562 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
12563 l_rec_acct_attrs.array_num_value(2) :=
12564 xla_ae_sources_pkg.GetSystemSourceNum(
12565 p_source_code => 'XLA_EVENT_APPL_ID'
12566 , p_source_type_code => 'Y'
12567 , p_source_application_id => 602
12568 );
12569 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
12570 l_rec_acct_attrs.array_char_value(3) := p_source_17;
12571 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
12572 l_rec_acct_attrs.array_char_value(4) :=
12573 xla_ae_sources_pkg.GetSystemSourceChar(
12574 p_source_code => 'XLA_ENTITY_CODE'
12575 , p_source_type_code => 'Y'
12576 , p_source_application_id => 602
12577 );
12578 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
12579 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
12580 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
12581 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
12582 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
12583 l_rec_acct_attrs.array_num_value(7) := p_source_21;
12584 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12585 l_rec_acct_attrs.array_char_value(8) := p_source_22;
12586 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
12587 l_rec_acct_attrs.array_char_value(9) := p_source_23;
12588 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
12589 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
12590 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12591 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
12592 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
12593 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
12594 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
12595 l_rec_acct_attrs.array_char_value(13) := p_source_17;
12596 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
12597 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
12598 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
12599 l_rec_acct_attrs.array_num_value(15) := p_source_26;
12600 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
12601 l_rec_acct_attrs.array_char_value(16) := p_source_27;
12602 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
12603 l_rec_acct_attrs.array_num_value(17) := p_source_28;
12604 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
12605 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
12606 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
12607 l_rec_acct_attrs.array_num_value(19) := p_source_26;
12608 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
12609 l_rec_acct_attrs.array_char_value(20) := p_source_27;
12610 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
12611 l_rec_acct_attrs.array_num_value(21) := p_source_28;
12612 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
12613 l_rec_acct_attrs.array_char_value(22) := p_source_29;
12614 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
12615 l_rec_acct_attrs.array_num_value(23) := p_source_40;
12616 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
12617 l_rec_acct_attrs.array_char_value(24) := p_source_27;
12618 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
12619 l_rec_acct_attrs.array_date_value(25) := p_source_35;
12620 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
12621 l_rec_acct_attrs.array_num_value(26) := p_source_36;
12622 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
12623 l_rec_acct_attrs.array_char_value(27) := p_source_37;
12624 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
12625 l_rec_acct_attrs.array_num_value(28) := p_source_40;
12626 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
12627 l_rec_acct_attrs.array_char_value(29) := p_source_31;
12628 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
12629 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
12630 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
12631 l_rec_acct_attrs.array_char_value(31) := p_source_22;
12632 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
12633 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
12634 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
12635 l_rec_acct_attrs.array_num_value(33) := p_source_32;
12636 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
12637 l_rec_acct_attrs.array_num_value(34) := p_source_32;
12638
12639 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12640 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12641
12645 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12642 ---------------------------------------------------------------------------------------------------------------
12643 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12644 ---------------------------------------------------------------------------------------------------------------
12646
12647 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12648 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12649
12650 IF xla_accounting_cache_pkg.GetValueChar
12651 (p_source_code => 'LEDGER_CATEGORY_CODE'
12652 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12653 AND l_bflow_method_code = 'PRIOR_ENTRY'
12654 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12655 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12656 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12657 )
12658 THEN
12659 xla_ae_lines_pkg.BflowUpgEntry
12660 (p_business_method_code => l_bflow_method_code
12661 ,p_business_class_code => l_bflow_class_code
12662 ,p_balance_type => l_balance_type_code);
12663 ELSE
12664 NULL;
12665 -- No business flow processing for business flow method of NONE.
12666 END IF;
12667
12668 --
12669 -- call analytical criteria
12670 --
12671
12672 --
12673 -- call description
12674 --
12675
12676 xla_ae_lines_pkg.SetLineDescription(
12677 p_ae_header_id => l_ae_header_id
12678 ,p_description => Description_2 (
12679 p_application_id => p_application_id
12680 , p_ae_header_id => l_ae_header_id
12681 , p_source_3 => p_source_3
12682 )
12683 );
12684
12685
12686 --
12687 -- call ADRs
12688 -- Bug 4922099
12689 --
12690 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12691 (NVL(l_actual_upg_option, 'N') = 'O') OR
12692 (NVL(l_enc_upg_option, 'N') = 'O')
12693 )
12694 THEN
12695 NULL;
12696 --
12697 --
12698
12699 l_ccid := AcctDerRule_9(
12700 p_application_id => p_application_id
12701 , p_ae_header_id => l_ae_header_id
12702 , p_source_9 => p_source_9
12703 , x_transaction_coa_id => l_adr_transaction_coa_id
12704 , x_accounting_coa_id => l_adr_accounting_coa_id
12705 , x_value_type_code => l_adr_value_type_code
12706 , p_side => 'NA'
12707 );
12708
12709 xla_ae_lines_pkg.set_ccid(
12710 p_code_combination_id => l_ccid
12711 , p_value_type_code => l_adr_value_type_code
12712 , p_transaction_coa_id => l_adr_transaction_coa_id
12713 , p_accounting_coa_id => l_adr_accounting_coa_id
12714 , p_adr_code => 'FV_ACCOUNT_RULE'
12715 , p_adr_type_code => 'S'
12716 , p_component_type => l_component_type
12717 , p_component_code => l_component_code
12718 , p_component_type_code => l_component_type_code
12719 , p_component_appl_id => l_component_appl_id
12720 , p_amb_context_code => l_amb_context_code
12721 , p_side => 'NA'
12722 );
12723
12724
12725 l_segment := AcctDerRule_8(
12726 p_application_id => p_application_id
12727 , p_ae_header_id => l_ae_header_id
12728 , x_transaction_coa_id => l_adr_transaction_coa_id
12729 , x_accounting_coa_id => l_adr_accounting_coa_id
12730 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12731 , x_flex_value_set_id => l_adr_flex_value_set_id
12732 , x_value_type_code => l_adr_value_type_code
12733 , x_value_combination_id => l_adr_value_combination_id
12734 , x_value_segment_code => l_adr_value_segment_code
12735 , p_side => 'NA'
12736 , p_override_seg_flag => 'Y'
12737 );
12738
12739 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12740
12741 xla_ae_lines_pkg.set_segment(
12742 p_to_segment_code => 'GL_ACCOUNT'
12743 , p_segment_value => l_segment
12744 , p_from_segment_code => l_adr_value_segment_code
12745 , p_from_combination_id => l_adr_value_combination_id
12746 , p_value_type_code => l_adr_value_type_code
12747 , p_transaction_coa_id => l_adr_transaction_coa_id
12748 , p_accounting_coa_id => l_adr_accounting_coa_id
12749 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12750 , p_flex_value_set_id => l_adr_flex_value_set_id
12751 , p_adr_code => 'FV_48X101_PURCHASING'
12752 , p_adr_type_code => 'S'
12753 , p_component_type => l_component_type
12754 , p_component_code => l_component_code
12755 , p_component_type_code => l_component_type_code
12756 , p_component_appl_id => l_component_appl_id
12757 , p_amb_context_code => l_amb_context_code
12758 , p_entity_code => 'PURCHASE_ORDER'
12759 , p_event_class_code => 'PO_PA'
12760 , p_side => 'NA'
12761 );
12762
12763 END IF;
12764
12765 --
12766 --
12767 END IF;
12768 --
12769 -- Bug 4922099
12770 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12771 (NVL(l_enc_upg_option, 'N') = 'O')
12772 ) AND
12773 (l_bflow_method_code = 'PRIOR_ENTRY')
12774 )
12775 THEN
12776 IF
12777 --
12778 1 = 2
12779 --
12780 THEN
12781 xla_accounting_err_pkg.build_message
12782 (p_appli_s_name => 'XLA'
12783 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12784 ,p_token_1 => 'LINE_NUMBER'
12785 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12786 ,p_token_2 => 'LINE_TYPE_NAME'
12787 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12788 l_component_type
12789 ,l_component_code
12790 ,l_component_type_code
12791 ,l_component_appl_id
12792 ,l_amb_context_code
12793 ,l_entity_code
12794 ,l_event_class_code
12795 )
12796 ,p_token_3 => 'OWNER'
12797 ,p_value_3 => xla_lookups_pkg.get_meaning(
12798 p_lookup_type => 'XLA_OWNER_TYPE'
12799 ,p_lookup_code => l_component_type_code
12800 )
12801 ,p_token_4 => 'PRODUCT_NAME'
12802 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12803 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12804 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12805 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12806 ,p_ae_header_id => NULL
12807 );
12808
12809 IF (C_LEVEL_ERROR>= g_log_level) THEN
12810 trace
12811 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12812 ,p_level => C_LEVEL_ERROR
12813 ,p_module => l_log_module);
12814 END IF;
12815 END IF;
12816 END IF;
12817 --
12818 --
12819 ------------------------------------------------------------------------------------------------
12820 -- 4219869 Business Flow
12821 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12822 -- Prior Entry. Currently, the following code is always generated.
12823 ------------------------------------------------------------------------------------------------
12824 XLA_AE_LINES_PKG.ValidateCurrentLine;
12825
12826 ------------------------------------------------------------------------------------
12827 -- 4219869 Business Flow
12828 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12829 ------------------------------------------------------------------------------------
12830 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12831
12832 ----------------------------------------------------------------------------------
12833 -- 4219869 Business Flow
12834 -- Update journal entry status -- Need to generate this within IF <condition>
12835 ----------------------------------------------------------------------------------
12836 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12837 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12838 ,p_balance_type_code => l_balance_type_code
12839 );
12840
12841 -------------------------------------------------------------------------------------------
12842 -- 4262811 - Generate the Accrual Reversal lines
12843 -------------------------------------------------------------------------------------------
12844 BEGIN
12845 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12846 (g_array_event(p_event_id).array_value_num('header_index'));
12847 IF l_acc_rev_flag IS NULL THEN
12848 l_acc_rev_flag := 'N';
12849 END IF;
12850 EXCEPTION
12851 WHEN OTHERS THEN
12852 l_acc_rev_flag := 'N';
12853 END;
12854 --
12855 IF (l_acc_rev_flag = 'Y') THEN
12856
12857 -- 4645092 ------------------------------------------------------------------------------
12858 -- To allow MPA report to determine if it should generate report process
12859 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12860 ------------------------------------------------------------------------------------------
12861
12862 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12863 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12864
12865 --
12866 -- Update the line information that should be overwritten
12867 --
12868 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12869 p_header_num => 1);
12870 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12871
12872 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12873
12874 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12875 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12876 END IF;
12877
12878 --
12879 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12880 --
12881 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12882 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12883 ELSE
12884 ---------------------------------------------------------------------------------------------------
12885 -- 4262811a Switch Sign
12886 ---------------------------------------------------------------------------------------------------
12887 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12888 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12889 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12890 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12891 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12892 -- 5132302
12893 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12894 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12895
12896 END IF;
12897
12898 -- 4955764
12899 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12900 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12901
12902
12903 XLA_AE_LINES_PKG.ValidateCurrentLine;
12904 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12905
12906 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12907 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12908 ,p_balance_type_code => l_balance_type_code);
12909
12910 END IF;
12911
12912 -----------------------------------------------------------------------------------------
12913 -- 4262811 Multiperiod Accounting
12914 -----------------------------------------------------------------------------------------
12915 -- No MPA option is assigned.
12916
12917
12918 END IF;
12919 END IF;
12920 --
12921
12922 --
12926 ,p_level => C_LEVEL_PROCEDURE
12923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12924 trace
12925 (p_msg => 'END of AcctLineType_30'
12927 ,p_module => l_log_module);
12928 END IF;
12929 --
12930 EXCEPTION
12931 WHEN xla_exceptions_pkg.application_exception THEN
12932 RAISE;
12933 WHEN OTHERS THEN
12934 xla_exceptions_pkg.raise_message
12935 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_30');
12936 END AcctLineType_30;
12937 --
12938
12939 ---------------------------------------
12940 --
12941 -- PRIVATE FUNCTION
12942 -- AcctLineType_31
12943 --
12944 ---------------------------------------
12945 PROCEDURE AcctLineType_31 (
12946 p_application_id IN NUMBER
12947 ,p_event_id IN NUMBER
12948 ,p_calculate_acctd_flag IN VARCHAR2
12949 ,p_calculate_g_l_flag IN VARCHAR2
12950 ,p_actual_flag IN OUT VARCHAR2
12951 ,p_balance_type_code OUT VARCHAR2
12952 ,p_gain_or_loss_ref OUT VARCHAR2
12953
12954 --Journal entry Line Description
12955 , p_source_3 IN VARCHAR2
12956 --Federal Fund Category
12957 , p_source_7 IN VARCHAR2
12958 --Federal Fund Expired Status
12959 , p_source_8 IN VARCHAR2
12960 --Budget Account
12961 , p_source_9 IN NUMBER
12962 --Federal Prior Year Flag
12963 , p_source_10 IN VARCHAR2
12964 --Main Or Backing Code
12965 , p_source_13 IN VARCHAR2
12966 --PO Distribution Type
12967 , p_source_14 IN VARCHAR2
12968 --Accounting Reversal Flag
12969 , p_source_15 IN VARCHAR2
12970 --Distribution Link Type
12971 , p_source_17 IN VARCHAR2
12972 --PO Distribution Identifier
12973 , p_source_19 IN NUMBER
12974 --PO Header Identifier
12975 , p_source_20 IN NUMBER
12976 --Applied To Application Identifier
12977 , p_source_21 IN NUMBER
12978 --Applied To Distribution Link Type
12979 , p_source_22 IN VARCHAR2
12980 --Applied To Entity Code
12981 , p_source_23 IN VARCHAR2
12982 --Applied To Distribution Identifier 1
12983 , p_source_24 IN NUMBER
12984 --Applied To Header Identifier 1
12985 , p_source_25 IN NUMBER
12986 --Entered Amount
12987 , p_source_26 IN NUMBER
12988 --Currency Code
12989 , p_source_27 IN VARCHAR2
12990 --Accounted Amount
12991 , p_source_28 IN NUMBER
12992 --PO Encumbrance Upgrade Option
12993 , p_source_29 IN VARCHAR2
12994 --JFMIP Reference
12995 , p_source_31 IN VARCHAR2
12996 --PO Upgrade Encumbrance Type Identifier
12997 , p_source_32 IN NUMBER
12998 --Currency Conversion Date
12999 , p_source_35 IN DATE
13000 --Currency Conversion Rate
13001 , p_source_36 IN NUMBER
13002 --Currency Conversion Type
13003 , p_source_37 IN VARCHAR2
13004 --Federal Pya Amt
13005 , p_source_40 IN NUMBER
13006 )
13007 IS
13008
13009 l_component_type VARCHAR2(80);
13010 l_component_code VARCHAR2(30);
13011 l_component_type_code VARCHAR2(1);
13012 l_component_appl_id INTEGER;
13013 l_amb_context_code VARCHAR2(30);
13014 l_entity_code VARCHAR2(30);
13015 l_event_class_code VARCHAR2(30);
13016 l_ae_header_id NUMBER;
13017 l_event_type_code VARCHAR2(30);
13018 l_line_definition_code VARCHAR2(30);
13019 l_line_definition_owner_code VARCHAR2(1);
13020 --
13021 -- adr variables
13022 l_segment VARCHAR2(30);
13023 l_ccid NUMBER;
13024 l_adr_transaction_coa_id NUMBER;
13025 l_adr_accounting_coa_id NUMBER;
13026 l_adr_flexfield_segment_code VARCHAR2(30);
13027 l_adr_flex_value_set_id NUMBER;
13028 l_adr_value_type_code VARCHAR2(30);
13029 l_adr_value_combination_id NUMBER;
13030 l_adr_value_segment_code VARCHAR2(30);
13031
13032 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13033 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13034 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13035 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13036
13037 -- 4262811 Variables ------------------------------------------------------------------------------------------
13038 l_entered_amt_idx NUMBER;
13039 l_accted_amt_idx NUMBER;
13040 l_acc_rev_flag VARCHAR2(1);
13041 l_accrual_line_num NUMBER;
13042 l_tmp_amt NUMBER;
13043 l_acc_rev_natural_side_code VARCHAR2(1);
13044
13045 l_num_entries NUMBER;
13046 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13047 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13048 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13049 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13050 l_recog_line_1 NUMBER;
13051 l_recog_line_2 NUMBER;
13052
13053 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13054 l_bflow_applied_to_amt NUMBER; -- 5132302
13055 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13056
13057 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13058
13059 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13060 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13064
13061
13062 ---------------------------------------------------------------------------------------------------------------
13063
13065 --
13066 -- bulk performance
13067 --
13068 l_balance_type_code VARCHAR2(1);
13069 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13070 l_log_module VARCHAR2(240);
13071
13072 --
13073 -- Upgrade strategy
13074 --
13075 l_actual_upg_option VARCHAR2(1);
13076 l_enc_upg_option VARCHAR2(1);
13077
13078 --
13079 BEGIN
13080 --
13081 IF g_log_enabled THEN
13082 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_31';
13083 END IF;
13084 --
13085 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13086
13087 trace
13088 (p_msg => 'BEGIN of AcctLineType_31'
13089 ,p_level => C_LEVEL_PROCEDURE
13090 ,p_module => l_log_module);
13091
13092 END IF;
13093 --
13094 l_component_type := 'AMB_JLT';
13095 l_component_code := 'FV_PO_PYA_RESERVE_DR';
13096 l_component_type_code := 'S';
13097 l_component_appl_id := 201;
13098 l_amb_context_code := 'DEFAULT';
13099 l_entity_code := 'PURCHASE_ORDER';
13100 l_event_class_code := 'PO_PA';
13101 l_event_type_code := 'PO_PA_ALL';
13102 l_line_definition_owner_code := 'S';
13103 l_line_definition_code := 'FV_PO_ALL';
13104 --
13105 l_balance_type_code := 'A';
13106 l_segment := NULL;
13107 l_ccid := NULL;
13108 l_adr_transaction_coa_id := NULL;
13109 l_adr_accounting_coa_id := NULL;
13110 l_adr_flexfield_segment_code := NULL;
13111 l_adr_flex_value_set_id := NULL;
13112 l_adr_value_type_code := NULL;
13113 l_adr_value_combination_id := NULL;
13114 l_adr_value_segment_code := NULL;
13115
13116 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13117 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
13118 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13119 l_budgetary_control_flag := 'Y';
13120
13121 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13122 l_bflow_applied_to_amt := NULL; -- 5132302
13123 l_entered_amt_idx := NULL; -- 4262811
13124 l_accted_amt_idx := NULL; -- 4262811
13125 l_acc_rev_flag := NULL; -- 4262811
13126 l_accrual_line_num := NULL; -- 4262811
13127 l_tmp_amt := NULL; -- 4262811
13128 --
13129
13130 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13131 l_balance_type_code <> 'B' THEN
13132 IF NVL(
13133 xla_ae_sources_pkg.GetSystemSourceChar(
13134 p_source_code => 'XLA_EVENT_TYPE_CODE'
13135 , p_source_type_code => 'Y'
13136 , p_source_application_id => 602
13137 ),'
13138 ') = 'PO_PA_RESERVED' AND
13139 NVL(p_source_13,'
13140 ') = 'M' AND
13141 (NVL(p_source_14,'
13142 ') <> 'AGREEMENT' OR
13143 p_source_14 IS NULL ) AND
13144 NVL(p_source_10,'
13145 ') = 'Y' AND
13146 NVL(p_source_40,9E125) <> 0 AND
13147 p_source_40 IS NOT NULL
13148 THEN
13149
13150 --
13151 XLA_AE_LINES_PKG.SetNewLine;
13152
13153 p_balance_type_code := l_balance_type_code;
13154 -- set the flag so later we will know whether the gain loss line needs to be created
13155
13156 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13157 p_actual_flag :='A';
13158 END IF;
13159
13160 --
13161 -- bulk performance
13162 --
13163 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13164 p_header_num => 0); -- 4262811
13165 --
13166 -- set accounting line options
13167 --
13168 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13169 p_natural_side_code => 'D'
13170 , p_gain_or_loss_flag => 'N'
13171 , p_gl_transfer_mode_code => 'S'
13172 , p_acct_entry_type_code => 'A'
13173 , p_switch_side_flag => 'Y'
13174 , p_merge_duplicate_code => 'N'
13175 );
13176 --
13177 l_acc_rev_natural_side_code := 'C'; -- 4262811
13178 --
13179 --
13180 -- set accounting line type info
13181 --
13182 xla_ae_lines_pkg.SetAcctLineType
13183 (p_component_type => l_component_type
13184 ,p_event_type_code => l_event_type_code
13185 ,p_line_definition_owner_code => l_line_definition_owner_code
13186 ,p_line_definition_code => l_line_definition_code
13187 ,p_accounting_line_code => l_component_code
13188 ,p_accounting_line_type_code => l_component_type_code
13189 ,p_accounting_line_appl_id => l_component_appl_id
13190 ,p_amb_context_code => l_amb_context_code
13191 ,p_entity_code => l_entity_code
13192 ,p_event_class_code => l_event_class_code);
13193 --
13194 -- set accounting class
13195 --
13196 xla_ae_lines_pkg.SetAcctClass(
13197 p_accounting_class_code => 'PURCHASE_ORDER'
13198 , p_ae_header_id => l_ae_header_id
13199 );
13200
13201 --
13202 -- set rounding class
13203 --
13204 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13205 'PURCHASE_ORDER';
13206
13207 --
13208 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13209 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13210 --
13211 -- bulk performance
13212 --
13213 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13214
13215 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13216 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13217
13218 -- 4955764
13219 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13220 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13221
13222 -- 4458381 Public Sector Enh
13223
13224 --
13225 -- set accounting attributes for the line type
13226 --
13227 l_entered_amt_idx := 23;
13228 l_accted_amt_idx := 28;
13229 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13230 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13231 l_rec_acct_attrs.array_char_value(1) := p_source_15;
13232 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
13233 l_rec_acct_attrs.array_num_value(2) :=
13234 xla_ae_sources_pkg.GetSystemSourceNum(
13235 p_source_code => 'XLA_EVENT_APPL_ID'
13236 , p_source_type_code => 'Y'
13237 , p_source_application_id => 602
13238 );
13239 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
13240 l_rec_acct_attrs.array_char_value(3) := p_source_17;
13241 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
13242 l_rec_acct_attrs.array_char_value(4) :=
13243 xla_ae_sources_pkg.GetSystemSourceChar(
13244 p_source_code => 'XLA_ENTITY_CODE'
13245 , p_source_type_code => 'Y'
13246 , p_source_application_id => 602
13247 );
13248 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
13249 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
13250 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
13251 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
13252 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
13253 l_rec_acct_attrs.array_num_value(7) := p_source_21;
13254 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13255 l_rec_acct_attrs.array_char_value(8) := p_source_22;
13256 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
13257 l_rec_acct_attrs.array_char_value(9) := p_source_23;
13258 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
13259 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
13260 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13261 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
13262 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
13263 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
13264 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
13265 l_rec_acct_attrs.array_char_value(13) := p_source_17;
13266 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
13267 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
13268 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
13269 l_rec_acct_attrs.array_num_value(15) := p_source_26;
13270 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
13271 l_rec_acct_attrs.array_char_value(16) := p_source_27;
13272 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
13273 l_rec_acct_attrs.array_num_value(17) := p_source_28;
13274 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
13275 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
13276 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
13277 l_rec_acct_attrs.array_num_value(19) := p_source_26;
13278 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
13279 l_rec_acct_attrs.array_char_value(20) := p_source_27;
13280 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
13281 l_rec_acct_attrs.array_num_value(21) := p_source_28;
13282 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
13283 l_rec_acct_attrs.array_char_value(22) := p_source_29;
13284 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
13285 l_rec_acct_attrs.array_num_value(23) := p_source_40;
13286 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
13287 l_rec_acct_attrs.array_char_value(24) := p_source_27;
13288 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
13289 l_rec_acct_attrs.array_date_value(25) := p_source_35;
13290 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
13291 l_rec_acct_attrs.array_num_value(26) := p_source_36;
13292 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
13293 l_rec_acct_attrs.array_char_value(27) := p_source_37;
13294 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
13295 l_rec_acct_attrs.array_num_value(28) := p_source_40;
13296 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
13297 l_rec_acct_attrs.array_char_value(29) := p_source_31;
13298 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
13299 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
13300 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
13301 l_rec_acct_attrs.array_char_value(31) := p_source_22;
13302 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
13303 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
13304 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
13305 l_rec_acct_attrs.array_num_value(33) := p_source_32;
13306 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
13307 l_rec_acct_attrs.array_num_value(34) := p_source_32;
13308
13309 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13310 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13311
13312 ---------------------------------------------------------------------------------------------------------------
13313 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13314 ---------------------------------------------------------------------------------------------------------------
13315 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13316
13317 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13318 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13319
13320 IF xla_accounting_cache_pkg.GetValueChar
13321 (p_source_code => 'LEDGER_CATEGORY_CODE'
13322 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13323 AND l_bflow_method_code = 'PRIOR_ENTRY'
13324 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13325 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13326 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13327 )
13328 THEN
13329 xla_ae_lines_pkg.BflowUpgEntry
13330 (p_business_method_code => l_bflow_method_code
13331 ,p_business_class_code => l_bflow_class_code
13332 ,p_balance_type => l_balance_type_code);
13333 ELSE
13334 NULL;
13335 -- No business flow processing for business flow method of NONE.
13336 END IF;
13337
13338 --
13339 -- call analytical criteria
13340 --
13341
13342 --
13343 -- call description
13344 --
13345
13346 xla_ae_lines_pkg.SetLineDescription(
13347 p_ae_header_id => l_ae_header_id
13348 ,p_description => Description_2 (
13349 p_application_id => p_application_id
13350 , p_ae_header_id => l_ae_header_id
13351 , p_source_3 => p_source_3
13352 )
13353 );
13354
13355
13356 --
13357 -- call ADRs
13358 -- Bug 4922099
13359 --
13360 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13361 (NVL(l_actual_upg_option, 'N') = 'O') OR
13362 (NVL(l_enc_upg_option, 'N') = 'O')
13363 )
13364 THEN
13365 NULL;
13366 --
13367 --
13368
13369 l_ccid := AcctDerRule_9(
13370 p_application_id => p_application_id
13371 , p_ae_header_id => l_ae_header_id
13372 , p_source_9 => p_source_9
13373 , x_transaction_coa_id => l_adr_transaction_coa_id
13374 , x_accounting_coa_id => l_adr_accounting_coa_id
13375 , x_value_type_code => l_adr_value_type_code
13376 , p_side => 'NA'
13377 );
13378
13379 xla_ae_lines_pkg.set_ccid(
13380 p_code_combination_id => l_ccid
13381 , p_value_type_code => l_adr_value_type_code
13382 , p_transaction_coa_id => l_adr_transaction_coa_id
13383 , p_accounting_coa_id => l_adr_accounting_coa_id
13384 , p_adr_code => 'FV_ACCOUNT_RULE'
13385 , p_adr_type_code => 'S'
13386 , p_component_type => l_component_type
13387 , p_component_code => l_component_code
13388 , p_component_type_code => l_component_type_code
13389 , p_component_appl_id => l_component_appl_id
13390 , p_amb_context_code => l_amb_context_code
13391 , p_side => 'NA'
13392 );
13393
13394
13395 l_segment := AcctDerRule_5(
13396 p_application_id => p_application_id
13397 , p_ae_header_id => l_ae_header_id
13398 , p_source_7 => p_source_7
13399 , p_source_8 => p_source_8
13400 , x_transaction_coa_id => l_adr_transaction_coa_id
13401 , x_accounting_coa_id => l_adr_accounting_coa_id
13402 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13403 , x_flex_value_set_id => l_adr_flex_value_set_id
13404 , x_value_type_code => l_adr_value_type_code
13405 , x_value_combination_id => l_adr_value_combination_id
13406 , x_value_segment_code => l_adr_value_segment_code
13407 , p_side => 'NA'
13408 , p_override_seg_flag => 'Y'
13409 );
13410
13411 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13412
13413 xla_ae_lines_pkg.set_segment(
13414 p_to_segment_code => 'GL_ACCOUNT'
13415 , p_segment_value => l_segment
13416 , p_from_segment_code => l_adr_value_segment_code
13417 , p_from_combination_id => l_adr_value_combination_id
13418 , p_value_type_code => l_adr_value_type_code
13419 , p_transaction_coa_id => l_adr_transaction_coa_id
13420 , p_accounting_coa_id => l_adr_accounting_coa_id
13421 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13422 , p_flex_value_set_id => l_adr_flex_value_set_id
13423 , p_adr_code => 'FV_46X002'
13424 , p_adr_type_code => 'S'
13425 , p_component_type => l_component_type
13426 , p_component_code => l_component_code
13427 , p_component_type_code => l_component_type_code
13428 , p_component_appl_id => l_component_appl_id
13429 , p_amb_context_code => l_amb_context_code
13430 , p_entity_code => 'PURCHASE_ORDER'
13434
13431 , p_event_class_code => 'PO_PA'
13432 , p_side => 'NA'
13433 );
13435 END IF;
13436
13437 --
13438 --
13439 END IF;
13440 --
13441 -- Bug 4922099
13442 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13443 (NVL(l_enc_upg_option, 'N') = 'O')
13444 ) AND
13445 (l_bflow_method_code = 'PRIOR_ENTRY')
13446 )
13447 THEN
13448 IF
13449 --
13450 1 = 2
13451 --
13452 THEN
13453 xla_accounting_err_pkg.build_message
13454 (p_appli_s_name => 'XLA'
13455 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13456 ,p_token_1 => 'LINE_NUMBER'
13457 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13458 ,p_token_2 => 'LINE_TYPE_NAME'
13459 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13460 l_component_type
13461 ,l_component_code
13462 ,l_component_type_code
13463 ,l_component_appl_id
13464 ,l_amb_context_code
13465 ,l_entity_code
13466 ,l_event_class_code
13467 )
13468 ,p_token_3 => 'OWNER'
13469 ,p_value_3 => xla_lookups_pkg.get_meaning(
13470 p_lookup_type => 'XLA_OWNER_TYPE'
13471 ,p_lookup_code => l_component_type_code
13472 )
13473 ,p_token_4 => 'PRODUCT_NAME'
13474 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13475 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13476 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13477 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13478 ,p_ae_header_id => NULL
13479 );
13480
13481 IF (C_LEVEL_ERROR>= g_log_level) THEN
13482 trace
13483 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13484 ,p_level => C_LEVEL_ERROR
13485 ,p_module => l_log_module);
13486 END IF;
13487 END IF;
13488 END IF;
13489 --
13490 --
13491 ------------------------------------------------------------------------------------------------
13492 -- 4219869 Business Flow
13493 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13494 -- Prior Entry. Currently, the following code is always generated.
13495 ------------------------------------------------------------------------------------------------
13496 XLA_AE_LINES_PKG.ValidateCurrentLine;
13497
13498 ------------------------------------------------------------------------------------
13499 -- 4219869 Business Flow
13500 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13501 ------------------------------------------------------------------------------------
13502 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13503
13504 ----------------------------------------------------------------------------------
13505 -- 4219869 Business Flow
13506 -- Update journal entry status -- Need to generate this within IF <condition>
13507 ----------------------------------------------------------------------------------
13508 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13509 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13510 ,p_balance_type_code => l_balance_type_code
13511 );
13512
13513 -------------------------------------------------------------------------------------------
13514 -- 4262811 - Generate the Accrual Reversal lines
13515 -------------------------------------------------------------------------------------------
13516 BEGIN
13517 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13518 (g_array_event(p_event_id).array_value_num('header_index'));
13519 IF l_acc_rev_flag IS NULL THEN
13520 l_acc_rev_flag := 'N';
13521 END IF;
13522 EXCEPTION
13523 WHEN OTHERS THEN
13524 l_acc_rev_flag := 'N';
13525 END;
13526 --
13527 IF (l_acc_rev_flag = 'Y') THEN
13528
13529 -- 4645092 ------------------------------------------------------------------------------
13530 -- To allow MPA report to determine if it should generate report process
13531 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13532 ------------------------------------------------------------------------------------------
13533
13534 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13535 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13536
13537 --
13538 -- Update the line information that should be overwritten
13539 --
13540 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13541 p_header_num => 1);
13542 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13543
13544 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13545
13546 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13547 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13548 END IF;
13549
13550 --
13551 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13552 --
13553 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13554 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13555 ELSE
13556 ---------------------------------------------------------------------------------------------------
13557 -- 4262811a Switch Sign
13558 ---------------------------------------------------------------------------------------------------
13559 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13560 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13561 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13562 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13563 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13564 -- 5132302
13565 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13566 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13567
13568 END IF;
13569
13570 -- 4955764
13571 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13572 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13573
13574
13575 XLA_AE_LINES_PKG.ValidateCurrentLine;
13576 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13577
13578 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13579 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13580 ,p_balance_type_code => l_balance_type_code);
13581
13582 END IF;
13583
13584 -----------------------------------------------------------------------------------------
13585 -- 4262811 Multiperiod Accounting
13586 -----------------------------------------------------------------------------------------
13587 -- No MPA option is assigned.
13588
13589
13590 END IF;
13591 END IF;
13592 --
13593
13594 --
13595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13596 trace
13597 (p_msg => 'END of AcctLineType_31'
13598 ,p_level => C_LEVEL_PROCEDURE
13599 ,p_module => l_log_module);
13600 END IF;
13601 --
13602 EXCEPTION
13603 WHEN xla_exceptions_pkg.application_exception THEN
13604 RAISE;
13605 WHEN OTHERS THEN
13606 xla_exceptions_pkg.raise_message
13607 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_31');
13608 END AcctLineType_31;
13609 --
13610
13611 ---------------------------------------
13612 --
13613 -- PRIVATE FUNCTION
13614 -- AcctLineType_32
13615 --
13616 ---------------------------------------
13617 PROCEDURE AcctLineType_32 (
13618 p_application_id IN NUMBER
13619 ,p_event_id IN NUMBER
13620 ,p_calculate_acctd_flag IN VARCHAR2
13621 ,p_calculate_g_l_flag IN VARCHAR2
13622 ,p_actual_flag IN OUT VARCHAR2
13623 ,p_balance_type_code OUT VARCHAR2
13624 ,p_gain_or_loss_ref OUT VARCHAR2
13625
13626 --Journal entry Line Description
13627 , p_source_3 IN VARCHAR2
13628 --Federal Fund Expired Status
13629 , p_source_8 IN VARCHAR2
13630 --Budget Account
13631 , p_source_9 IN NUMBER
13632 --Federal Prior Year Flag
13633 , p_source_10 IN VARCHAR2
13634 --Main Or Backing Code
13635 , p_source_13 IN VARCHAR2
13636 --PO Distribution Type
13637 , p_source_14 IN VARCHAR2
13638 --Accounting Reversal Flag
13639 , p_source_15 IN VARCHAR2
13640 --Distribution Link Type
13641 , p_source_17 IN VARCHAR2
13642 --PO Distribution Identifier
13643 , p_source_19 IN NUMBER
13644 --PO Header Identifier
13645 , p_source_20 IN NUMBER
13646 --Applied To Application Identifier
13647 , p_source_21 IN NUMBER
13648 --Applied To Distribution Link Type
13649 , p_source_22 IN VARCHAR2
13650 --Applied To Entity Code
13651 , p_source_23 IN VARCHAR2
13652 --Applied To Distribution Identifier 1
13653 , p_source_24 IN NUMBER
13654 --Applied To Header Identifier 1
13655 , p_source_25 IN NUMBER
13656 --Entered Amount
13657 , p_source_26 IN NUMBER
13658 --Currency Code
13659 , p_source_27 IN VARCHAR2
13660 --Accounted Amount
13661 , p_source_28 IN NUMBER
13662 --PO Encumbrance Upgrade Option
13663 , p_source_29 IN VARCHAR2
13664 --JFMIP Reference
13665 , p_source_31 IN VARCHAR2
13666 --PO Upgrade Encumbrance Type Identifier
13667 , p_source_32 IN NUMBER
13668 --Currency Conversion Date
13669 , p_source_35 IN DATE
13670 --Currency Conversion Rate
13671 , p_source_36 IN NUMBER
13672 --Currency Conversion Type
13673 , p_source_37 IN VARCHAR2
13674 )
13675 IS
13676
13677 l_component_type VARCHAR2(80);
13678 l_component_code VARCHAR2(30);
13679 l_component_type_code VARCHAR2(1);
13680 l_component_appl_id INTEGER;
13681 l_amb_context_code VARCHAR2(30);
13682 l_entity_code VARCHAR2(30);
13683 l_event_class_code VARCHAR2(30);
13684 l_ae_header_id NUMBER;
13685 l_event_type_code VARCHAR2(30);
13686 l_line_definition_code VARCHAR2(30);
13687 l_line_definition_owner_code VARCHAR2(1);
13688 --
13689 -- adr variables
13690 l_segment VARCHAR2(30);
13691 l_ccid NUMBER;
13692 l_adr_transaction_coa_id NUMBER;
13693 l_adr_accounting_coa_id NUMBER;
13694 l_adr_flexfield_segment_code VARCHAR2(30);
13695 l_adr_flex_value_set_id NUMBER;
13696 l_adr_value_type_code VARCHAR2(30);
13697 l_adr_value_combination_id NUMBER;
13698 l_adr_value_segment_code VARCHAR2(30);
13699
13700 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13701 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13702 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13703 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13704
13705 -- 4262811 Variables ------------------------------------------------------------------------------------------
13706 l_entered_amt_idx NUMBER;
13707 l_accted_amt_idx NUMBER;
13708 l_acc_rev_flag VARCHAR2(1);
13709 l_accrual_line_num NUMBER;
13710 l_tmp_amt NUMBER;
13711 l_acc_rev_natural_side_code VARCHAR2(1);
13712
13713 l_num_entries NUMBER;
13714 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13715 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13716 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13717 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13718 l_recog_line_1 NUMBER;
13719 l_recog_line_2 NUMBER;
13720
13721 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13722 l_bflow_applied_to_amt NUMBER; -- 5132302
13723 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13724
13725 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13726
13727 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13728 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13729
13730 ---------------------------------------------------------------------------------------------------------------
13731
13732
13733 --
13734 -- bulk performance
13735 --
13736 l_balance_type_code VARCHAR2(1);
13737 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13738 l_log_module VARCHAR2(240);
13739
13740 --
13741 -- Upgrade strategy
13742 --
13743 l_actual_upg_option VARCHAR2(1);
13744 l_enc_upg_option VARCHAR2(1);
13745
13746 --
13747 BEGIN
13748 --
13749 IF g_log_enabled THEN
13750 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_32';
13751 END IF;
13752 --
13753 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13754
13755 trace
13756 (p_msg => 'BEGIN of AcctLineType_32'
13757 ,p_level => C_LEVEL_PROCEDURE
13758 ,p_module => l_log_module);
13759
13760 END IF;
13761 --
13762 l_component_type := 'AMB_JLT';
13763 l_component_code := 'FV_PO_PYA_REVERSE_CR';
13764 l_component_type_code := 'S';
13765 l_component_appl_id := 201;
13769 l_event_type_code := 'PO_PA_ALL';
13766 l_amb_context_code := 'DEFAULT';
13767 l_entity_code := 'PURCHASE_ORDER';
13768 l_event_class_code := 'PO_PA';
13770 l_line_definition_owner_code := 'S';
13771 l_line_definition_code := 'FV_PO_ALL';
13772 --
13773 l_balance_type_code := 'A';
13774 l_segment := NULL;
13775 l_ccid := NULL;
13776 l_adr_transaction_coa_id := NULL;
13777 l_adr_accounting_coa_id := NULL;
13778 l_adr_flexfield_segment_code := NULL;
13779 l_adr_flex_value_set_id := NULL;
13780 l_adr_value_type_code := NULL;
13781 l_adr_value_combination_id := NULL;
13782 l_adr_value_segment_code := NULL;
13783
13784 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13785 l_bflow_class_code := ''; -- 4219869 Business Flow
13786 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13787 l_budgetary_control_flag := 'Y';
13788
13789 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13790 l_bflow_applied_to_amt := NULL; -- 5132302
13791 l_entered_amt_idx := NULL; -- 4262811
13792 l_accted_amt_idx := NULL; -- 4262811
13793 l_acc_rev_flag := NULL; -- 4262811
13794 l_accrual_line_num := NULL; -- 4262811
13795 l_tmp_amt := NULL; -- 4262811
13796 --
13797
13798 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13799 l_balance_type_code <> 'B' THEN
13800 IF NVL(
13801 xla_ae_sources_pkg.GetSystemSourceChar(
13802 p_source_code => 'XLA_EVENT_TYPE_CODE'
13803 , p_source_type_code => 'Y'
13804 , p_source_application_id => 602
13805 ),'
13806 ') = 'PO_PA_CANCELLED' AND
13807 NVL(p_source_13,'
13808 ') = 'M' AND
13809 (NVL(p_source_14,'
13810 ') <> 'AGREEMENT' OR
13811 p_source_14 IS NULL ) AND
13812 NVL(p_source_10,'
13813 ') = 'Y'
13814 THEN
13815
13816 --
13817 XLA_AE_LINES_PKG.SetNewLine;
13818
13819 p_balance_type_code := l_balance_type_code;
13820 -- set the flag so later we will know whether the gain loss line needs to be created
13821
13822 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13823 p_actual_flag :='A';
13824 END IF;
13825
13826 --
13827 -- bulk performance
13828 --
13829 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13830 p_header_num => 0); -- 4262811
13831 --
13832 -- set accounting line options
13833 --
13834 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13835 p_natural_side_code => 'D'
13836 , p_gain_or_loss_flag => 'N'
13837 , p_gl_transfer_mode_code => 'S'
13838 , p_acct_entry_type_code => 'A'
13839 , p_switch_side_flag => 'Y'
13840 , p_merge_duplicate_code => 'N'
13841 );
13842 --
13843 l_acc_rev_natural_side_code := 'C'; -- 4262811
13844 --
13845 --
13846 -- set accounting line type info
13847 --
13848 xla_ae_lines_pkg.SetAcctLineType
13849 (p_component_type => l_component_type
13850 ,p_event_type_code => l_event_type_code
13851 ,p_line_definition_owner_code => l_line_definition_owner_code
13852 ,p_line_definition_code => l_line_definition_code
13853 ,p_accounting_line_code => l_component_code
13854 ,p_accounting_line_type_code => l_component_type_code
13855 ,p_accounting_line_appl_id => l_component_appl_id
13856 ,p_amb_context_code => l_amb_context_code
13857 ,p_entity_code => l_entity_code
13858 ,p_event_class_code => l_event_class_code);
13859 --
13860 -- set accounting class
13861 --
13862 xla_ae_lines_pkg.SetAcctClass(
13863 p_accounting_class_code => 'PURCHASE_ORDER'
13864 , p_ae_header_id => l_ae_header_id
13865 );
13866
13867 --
13868 -- set rounding class
13869 --
13870 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13871 'PURCHASE_ORDER';
13872
13873 --
13874 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13875 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13876 --
13877 -- bulk performance
13878 --
13879 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13880
13881 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13882 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13883
13884 -- 4955764
13885 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13886 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13887
13888 -- 4458381 Public Sector Enh
13889
13890 --
13891 -- set accounting attributes for the line type
13892 --
13893 l_entered_amt_idx := 23;
13894 l_accted_amt_idx := 28;
13895 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13896 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13900 xla_ae_sources_pkg.GetSystemSourceNum(
13897 l_rec_acct_attrs.array_char_value(1) := p_source_15;
13898 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
13899 l_rec_acct_attrs.array_num_value(2) :=
13901 p_source_code => 'XLA_EVENT_APPL_ID'
13902 , p_source_type_code => 'Y'
13903 , p_source_application_id => 602
13904 );
13905 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
13906 l_rec_acct_attrs.array_char_value(3) := p_source_17;
13907 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
13908 l_rec_acct_attrs.array_char_value(4) :=
13909 xla_ae_sources_pkg.GetSystemSourceChar(
13910 p_source_code => 'XLA_ENTITY_CODE'
13911 , p_source_type_code => 'Y'
13912 , p_source_application_id => 602
13913 );
13914 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
13915 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
13916 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
13917 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
13918 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
13919 l_rec_acct_attrs.array_num_value(7) := p_source_21;
13920 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13921 l_rec_acct_attrs.array_char_value(8) := p_source_22;
13922 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
13923 l_rec_acct_attrs.array_char_value(9) := p_source_23;
13924 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
13925 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
13926 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13927 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
13928 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
13929 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
13930 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
13931 l_rec_acct_attrs.array_char_value(13) := p_source_17;
13932 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
13933 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
13934 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
13935 l_rec_acct_attrs.array_num_value(15) := p_source_26;
13936 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
13937 l_rec_acct_attrs.array_char_value(16) := p_source_27;
13938 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
13939 l_rec_acct_attrs.array_num_value(17) := p_source_28;
13940 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
13941 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
13942 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
13943 l_rec_acct_attrs.array_num_value(19) := p_source_26;
13944 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
13945 l_rec_acct_attrs.array_char_value(20) := p_source_27;
13946 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
13947 l_rec_acct_attrs.array_num_value(21) := p_source_28;
13948 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
13949 l_rec_acct_attrs.array_char_value(22) := p_source_29;
13950 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
13951 l_rec_acct_attrs.array_num_value(23) := p_source_26;
13952 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
13953 l_rec_acct_attrs.array_char_value(24) := p_source_27;
13954 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
13955 l_rec_acct_attrs.array_date_value(25) := p_source_35;
13956 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
13957 l_rec_acct_attrs.array_num_value(26) := p_source_36;
13958 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
13959 l_rec_acct_attrs.array_char_value(27) := p_source_37;
13960 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
13961 l_rec_acct_attrs.array_num_value(28) := p_source_28;
13962 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
13963 l_rec_acct_attrs.array_char_value(29) := p_source_31;
13964 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
13965 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
13966 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
13967 l_rec_acct_attrs.array_char_value(31) := p_source_22;
13968 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
13969 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
13970 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
13971 l_rec_acct_attrs.array_num_value(33) := p_source_32;
13972 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
13973 l_rec_acct_attrs.array_num_value(34) := p_source_32;
13974
13975 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13976 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13977
13978 ---------------------------------------------------------------------------------------------------------------
13979 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13980 ---------------------------------------------------------------------------------------------------------------
13981 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13982
13983 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13984 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13985
13986 IF xla_accounting_cache_pkg.GetValueChar
13987 (p_source_code => 'LEDGER_CATEGORY_CODE'
13988 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13989 AND l_bflow_method_code = 'PRIOR_ENTRY'
13990 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13991 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13992 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13993 )
13994 THEN
13995 xla_ae_lines_pkg.BflowUpgEntry
13996 (p_business_method_code => l_bflow_method_code
13997 ,p_business_class_code => l_bflow_class_code
13998 ,p_balance_type => l_balance_type_code);
13999 ELSE
14000 NULL;
14001 -- No business flow processing for business flow method of NONE.
14002 END IF;
14003
14004 --
14005 -- call analytical criteria
14006 --
14007
14008 --
14009 -- call description
14010 --
14011
14012 xla_ae_lines_pkg.SetLineDescription(
14013 p_ae_header_id => l_ae_header_id
14014 ,p_description => Description_2 (
14015 p_application_id => p_application_id
14016 , p_ae_header_id => l_ae_header_id
14017 , p_source_3 => p_source_3
14018 )
14019 );
14020
14021
14022 --
14023 -- call ADRs
14024 -- Bug 4922099
14025 --
14026 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14027 (NVL(l_actual_upg_option, 'N') = 'O') OR
14028 (NVL(l_enc_upg_option, 'N') = 'O')
14029 )
14030 THEN
14031 NULL;
14032 --
14033 --
14034
14035 l_ccid := AcctDerRule_9(
14036 p_application_id => p_application_id
14037 , p_ae_header_id => l_ae_header_id
14038 , p_source_9 => p_source_9
14039 , x_transaction_coa_id => l_adr_transaction_coa_id
14040 , x_accounting_coa_id => l_adr_accounting_coa_id
14041 , x_value_type_code => l_adr_value_type_code
14042 , p_side => 'NA'
14043 );
14044
14045 xla_ae_lines_pkg.set_ccid(
14046 p_code_combination_id => l_ccid
14047 , p_value_type_code => l_adr_value_type_code
14048 , p_transaction_coa_id => l_adr_transaction_coa_id
14049 , p_accounting_coa_id => l_adr_accounting_coa_id
14050 , p_adr_code => 'FV_ACCOUNT_RULE'
14051 , p_adr_type_code => 'S'
14052 , p_component_type => l_component_type
14053 , p_component_code => l_component_code
14054 , p_component_type_code => l_component_type_code
14055 , p_component_appl_id => l_component_appl_id
14056 , p_amb_context_code => l_amb_context_code
14057 , p_side => 'NA'
14058 );
14059
14060
14061 l_segment := AcctDerRule_11(
14062 p_application_id => p_application_id
14063 , p_ae_header_id => l_ae_header_id
14064 , p_source_8 => p_source_8
14065 , x_transaction_coa_id => l_adr_transaction_coa_id
14066 , x_accounting_coa_id => l_adr_accounting_coa_id
14067 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14068 , x_flex_value_set_id => l_adr_flex_value_set_id
14069 , x_value_type_code => l_adr_value_type_code
14070 , x_value_combination_id => l_adr_value_combination_id
14071 , x_value_segment_code => l_adr_value_segment_code
14072 , p_side => 'NA'
14073 , p_override_seg_flag => 'Y'
14074 );
14075
14076 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14077
14078 xla_ae_lines_pkg.set_segment(
14079 p_to_segment_code => 'GL_ACCOUNT'
14080 , p_segment_value => l_segment
14081 , p_from_segment_code => l_adr_value_segment_code
14082 , p_from_combination_id => l_adr_value_combination_id
14083 , p_value_type_code => l_adr_value_type_code
14084 , p_transaction_coa_id => l_adr_transaction_coa_id
14085 , p_accounting_coa_id => l_adr_accounting_coa_id
14086 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14087 , p_flex_value_set_id => l_adr_flex_value_set_id
14088 , p_adr_code => 'FV_PYA_445002_UNANTICIPATED'
14089 , p_adr_type_code => 'S'
14090 , p_component_type => l_component_type
14091 , p_component_code => l_component_code
14092 , p_component_type_code => l_component_type_code
14093 , p_component_appl_id => l_component_appl_id
14094 , p_amb_context_code => l_amb_context_code
14095 , p_entity_code => 'PURCHASE_ORDER'
14096 , p_event_class_code => 'PO_PA'
14097 , p_side => 'NA'
14098 );
14099
14100 END IF;
14101
14102 --
14103 --
14104 END IF;
14105 --
14106 -- Bug 4922099
14107 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14108 (NVL(l_enc_upg_option, 'N') = 'O')
14109 ) AND
14110 (l_bflow_method_code = 'PRIOR_ENTRY')
14111 )
14112 THEN
14113 IF
14114 --
14115 1 = 2
14116 --
14117 THEN
14118 xla_accounting_err_pkg.build_message
14119 (p_appli_s_name => 'XLA'
14120 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14121 ,p_token_1 => 'LINE_NUMBER'
14122 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14123 ,p_token_2 => 'LINE_TYPE_NAME'
14124 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14125 l_component_type
14126 ,l_component_code
14127 ,l_component_type_code
14128 ,l_component_appl_id
14129 ,l_amb_context_code
14130 ,l_entity_code
14131 ,l_event_class_code
14132 )
14133 ,p_token_3 => 'OWNER'
14134 ,p_value_3 => xla_lookups_pkg.get_meaning(
14135 p_lookup_type => 'XLA_OWNER_TYPE'
14136 ,p_lookup_code => l_component_type_code
14137 )
14138 ,p_token_4 => 'PRODUCT_NAME'
14139 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14140 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14141 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14142 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14143 ,p_ae_header_id => NULL
14144 );
14145
14146 IF (C_LEVEL_ERROR>= g_log_level) THEN
14147 trace
14148 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14149 ,p_level => C_LEVEL_ERROR
14150 ,p_module => l_log_module);
14151 END IF;
14152 END IF;
14153 END IF;
14154 --
14155 --
14156 ------------------------------------------------------------------------------------------------
14157 -- 4219869 Business Flow
14158 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14159 -- Prior Entry. Currently, the following code is always generated.
14160 ------------------------------------------------------------------------------------------------
14161 XLA_AE_LINES_PKG.ValidateCurrentLine;
14162
14163 ------------------------------------------------------------------------------------
14164 -- 4219869 Business Flow
14165 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14166 ------------------------------------------------------------------------------------
14167 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14168
14169 ----------------------------------------------------------------------------------
14170 -- 4219869 Business Flow
14171 -- Update journal entry status -- Need to generate this within IF <condition>
14172 ----------------------------------------------------------------------------------
14173 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14174 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14175 ,p_balance_type_code => l_balance_type_code
14176 );
14177
14178 -------------------------------------------------------------------------------------------
14179 -- 4262811 - Generate the Accrual Reversal lines
14180 -------------------------------------------------------------------------------------------
14181 BEGIN
14182 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14183 (g_array_event(p_event_id).array_value_num('header_index'));
14184 IF l_acc_rev_flag IS NULL THEN
14185 l_acc_rev_flag := 'N';
14186 END IF;
14187 EXCEPTION
14188 WHEN OTHERS THEN
14189 l_acc_rev_flag := 'N';
14190 END;
14191 --
14192 IF (l_acc_rev_flag = 'Y') THEN
14193
14194 -- 4645092 ------------------------------------------------------------------------------
14195 -- To allow MPA report to determine if it should generate report process
14196 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14197 ------------------------------------------------------------------------------------------
14198
14199 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14200 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14201
14202 --
14203 -- Update the line information that should be overwritten
14204 --
14205 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14206 p_header_num => 1);
14207 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14208
14209 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14210
14211 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14212 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14213 END IF;
14214
14215 --
14216 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14217 --
14218 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14219 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14220 ELSE
14221 ---------------------------------------------------------------------------------------------------
14222 -- 4262811a Switch Sign
14223 ---------------------------------------------------------------------------------------------------
14224 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14225 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14226 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14227 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14228 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14229 -- 5132302
14230 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14231 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14232
14233 END IF;
14234
14235 -- 4955764
14236 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14237 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14238
14239
14240 XLA_AE_LINES_PKG.ValidateCurrentLine;
14241 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14242
14243 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14244 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14245 ,p_balance_type_code => l_balance_type_code);
14246
14247 END IF;
14248
14249 -----------------------------------------------------------------------------------------
14250 -- 4262811 Multiperiod Accounting
14251 -----------------------------------------------------------------------------------------
14252 -- No MPA option is assigned.
14253
14254
14255 END IF;
14256 END IF;
14257 --
14258
14259 --
14260 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14264 ,p_module => l_log_module);
14261 trace
14262 (p_msg => 'END of AcctLineType_32'
14263 ,p_level => C_LEVEL_PROCEDURE
14265 END IF;
14266 --
14267 EXCEPTION
14268 WHEN xla_exceptions_pkg.application_exception THEN
14269 RAISE;
14270 WHEN OTHERS THEN
14271 xla_exceptions_pkg.raise_message
14272 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_32');
14273 END AcctLineType_32;
14274 --
14275
14276 ---------------------------------------
14277 --
14278 -- PRIVATE FUNCTION
14279 -- AcctLineType_33
14280 --
14281 ---------------------------------------
14282 PROCEDURE AcctLineType_33 (
14283 p_application_id IN NUMBER
14284 ,p_event_id IN NUMBER
14285 ,p_calculate_acctd_flag IN VARCHAR2
14286 ,p_calculate_g_l_flag IN VARCHAR2
14287 ,p_actual_flag IN OUT VARCHAR2
14288 ,p_balance_type_code OUT VARCHAR2
14289 ,p_gain_or_loss_ref OUT VARCHAR2
14290
14291 --Budget Account
14292 , p_source_9 IN NUMBER
14293 --Main Or Backing Code
14294 , p_source_13 IN VARCHAR2
14295 --Accounting Reversal Flag
14296 , p_source_15 IN VARCHAR2
14297 --Distribution Link Type
14298 , p_source_17 IN VARCHAR2
14299 --PO Distribution Identifier
14300 , p_source_19 IN NUMBER
14301 --PO Header Identifier
14302 , p_source_20 IN NUMBER
14303 --Applied To Application Identifier
14304 , p_source_21 IN NUMBER
14305 --Applied To Distribution Link Type
14306 , p_source_22 IN VARCHAR2
14307 --Applied To Entity Code
14308 , p_source_23 IN VARCHAR2
14309 --Applied To Distribution Identifier 1
14310 , p_source_24 IN NUMBER
14311 --Applied To Header Identifier 1
14312 , p_source_25 IN NUMBER
14313 --Entered Amount
14314 , p_source_26 IN NUMBER
14315 --Currency Code
14316 , p_source_27 IN VARCHAR2
14317 --Accounted Amount
14318 , p_source_28 IN NUMBER
14319 --PO Encumbrance Upgrade Option
14320 , p_source_29 IN VARCHAR2
14321 --JFMIP Reference
14322 , p_source_31 IN VARCHAR2
14323 --PO Upgrade Encumbrance Type Identifier
14324 , p_source_32 IN NUMBER
14325 --Allocated to Main Document Distribution Type
14326 , p_source_33 IN VARCHAR2
14327 --Allocated to Main Document Distribution Identifier
14328 , p_source_34 IN NUMBER
14329 )
14330 IS
14331
14332 l_component_type VARCHAR2(80);
14333 l_component_code VARCHAR2(30);
14334 l_component_type_code VARCHAR2(1);
14335 l_component_appl_id INTEGER;
14336 l_amb_context_code VARCHAR2(30);
14337 l_entity_code VARCHAR2(30);
14338 l_event_class_code VARCHAR2(30);
14339 l_ae_header_id NUMBER;
14340 l_event_type_code VARCHAR2(30);
14341 l_line_definition_code VARCHAR2(30);
14342 l_line_definition_owner_code VARCHAR2(1);
14343 --
14344 -- adr variables
14345 l_segment VARCHAR2(30);
14346 l_ccid NUMBER;
14347 l_adr_transaction_coa_id NUMBER;
14348 l_adr_accounting_coa_id NUMBER;
14349 l_adr_flexfield_segment_code VARCHAR2(30);
14350 l_adr_flex_value_set_id NUMBER;
14351 l_adr_value_type_code VARCHAR2(30);
14352 l_adr_value_combination_id NUMBER;
14353 l_adr_value_segment_code VARCHAR2(30);
14354
14355 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14356 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14357 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14358 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14359
14360 -- 4262811 Variables ------------------------------------------------------------------------------------------
14361 l_entered_amt_idx NUMBER;
14362 l_accted_amt_idx NUMBER;
14363 l_acc_rev_flag VARCHAR2(1);
14364 l_accrual_line_num NUMBER;
14365 l_tmp_amt NUMBER;
14366 l_acc_rev_natural_side_code VARCHAR2(1);
14367
14368 l_num_entries NUMBER;
14369 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14370 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14371 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14372 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14373 l_recog_line_1 NUMBER;
14374 l_recog_line_2 NUMBER;
14375
14376 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14377 l_bflow_applied_to_amt NUMBER; -- 5132302
14378 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14379
14380 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14381
14382 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14383 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14384
14385 ---------------------------------------------------------------------------------------------------------------
14386
14387
14388 --
14389 -- bulk performance
14390 --
14391 l_balance_type_code VARCHAR2(1);
14392 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14393 l_log_module VARCHAR2(240);
14394
14395 --
14396 -- Upgrade strategy
14397 --
14398 l_actual_upg_option VARCHAR2(1);
14402 BEGIN
14399 l_enc_upg_option VARCHAR2(1);
14400
14401 --
14403 --
14404 IF g_log_enabled THEN
14405 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_33';
14406 END IF;
14407 --
14408 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14409
14410 trace
14411 (p_msg => 'BEGIN of AcctLineType_33'
14412 ,p_level => C_LEVEL_PROCEDURE
14413 ,p_module => l_log_module);
14414
14415 END IF;
14416 --
14417 l_component_type := 'AMB_JLT';
14418 l_component_code := 'FV_PO_REINSTATE_BPA_CR';
14419 l_component_type_code := 'S';
14420 l_component_appl_id := 201;
14421 l_amb_context_code := 'DEFAULT';
14422 l_entity_code := 'PURCHASE_ORDER';
14423 l_event_class_code := 'PO_PA';
14424 l_event_type_code := 'PO_PA_ALL';
14425 l_line_definition_owner_code := 'S';
14426 l_line_definition_code := 'FV_PO_ALL';
14427 --
14428 l_balance_type_code := 'A';
14429 l_segment := NULL;
14430 l_ccid := NULL;
14431 l_adr_transaction_coa_id := NULL;
14432 l_adr_accounting_coa_id := NULL;
14433 l_adr_flexfield_segment_code := NULL;
14434 l_adr_flex_value_set_id := NULL;
14435 l_adr_value_type_code := NULL;
14436 l_adr_value_combination_id := NULL;
14437 l_adr_value_segment_code := NULL;
14438
14439 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
14440 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
14441 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
14442 l_budgetary_control_flag := 'Y';
14443
14444 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14445 l_bflow_applied_to_amt := NULL; -- 5132302
14446 l_entered_amt_idx := NULL; -- 4262811
14447 l_accted_amt_idx := NULL; -- 4262811
14448 l_acc_rev_flag := NULL; -- 4262811
14449 l_accrual_line_num := NULL; -- 4262811
14450 l_tmp_amt := NULL; -- 4262811
14451 --
14452
14453 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14454 l_balance_type_code <> 'B' THEN
14455 IF (NVL(
14456 xla_ae_sources_pkg.GetSystemSourceChar(
14457 p_source_code => 'XLA_EVENT_TYPE_CODE'
14458 , p_source_type_code => 'Y'
14459 , p_source_application_id => 602
14460 ),'
14461 ') = 'PO_PA_UNRESERVED' OR
14462 NVL(
14463 xla_ae_sources_pkg.GetSystemSourceChar(
14464 p_source_code => 'XLA_EVENT_TYPE_CODE'
14465 , p_source_type_code => 'Y'
14466 , p_source_application_id => 602
14467 ),'
14468 ') = 'PO_PA_INV_CANCELLED' OR
14469 NVL(
14470 xla_ae_sources_pkg.GetSystemSourceChar(
14471 p_source_code => 'XLA_EVENT_TYPE_CODE'
14472 , p_source_type_code => 'Y'
14473 , p_source_application_id => 602
14474 ),'
14475 ') = 'PO_PA_REJECTED') AND
14476 NVL(p_source_13,'
14477 ') = 'B_PA'
14478 THEN
14479
14480 --
14481 XLA_AE_LINES_PKG.SetNewLine;
14482
14483 p_balance_type_code := l_balance_type_code;
14484 -- set the flag so later we will know whether the gain loss line needs to be created
14485
14486 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14487 p_actual_flag :='A';
14488 END IF;
14489
14490 --
14491 -- bulk performance
14492 --
14493 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14494 p_header_num => 0); -- 4262811
14495 --
14496 -- set accounting line options
14497 --
14498 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14499 p_natural_side_code => 'C'
14500 , p_gain_or_loss_flag => 'N'
14501 , p_gl_transfer_mode_code => 'S'
14502 , p_acct_entry_type_code => 'A'
14503 , p_switch_side_flag => 'N'
14504 , p_merge_duplicate_code => 'N'
14505 );
14506 --
14507 l_acc_rev_natural_side_code := 'D'; -- 4262811
14508 --
14509 --
14510 -- set accounting line type info
14511 --
14512 xla_ae_lines_pkg.SetAcctLineType
14513 (p_component_type => l_component_type
14514 ,p_event_type_code => l_event_type_code
14515 ,p_line_definition_owner_code => l_line_definition_owner_code
14516 ,p_line_definition_code => l_line_definition_code
14517 ,p_accounting_line_code => l_component_code
14518 ,p_accounting_line_type_code => l_component_type_code
14519 ,p_accounting_line_appl_id => l_component_appl_id
14520 ,p_amb_context_code => l_amb_context_code
14521 ,p_entity_code => l_entity_code
14522 ,p_event_class_code => l_event_class_code);
14523 --
14524 -- set accounting class
14525 --
14526 xla_ae_lines_pkg.SetAcctClass(
14527 p_accounting_class_code => 'PURCHASE_ORDER'
14528 , p_ae_header_id => l_ae_header_id
14529 );
14530
14531 --
14532 -- set rounding class
14533 --
14534 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14535 'PURCHASE_ORDER';
14536
14537 --
14538 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14539 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14540 --
14541 -- bulk performance
14542 --
14543 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14544
14545 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14546 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14547
14548 -- 4955764
14549 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14550 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14551
14552 -- 4458381 Public Sector Enh
14553
14554 --
14555 -- set accounting attributes for the line type
14556 --
14557 l_entered_amt_idx := 23;
14558 l_accted_amt_idx := 25;
14559 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14560 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14561 l_rec_acct_attrs.array_char_value(1) := p_source_15;
14562 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
14563 l_rec_acct_attrs.array_num_value(2) :=
14564 xla_ae_sources_pkg.GetSystemSourceNum(
14565 p_source_code => 'XLA_EVENT_APPL_ID'
14566 , p_source_type_code => 'Y'
14567 , p_source_application_id => 602
14568 );
14569 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
14570 l_rec_acct_attrs.array_char_value(3) := p_source_33;
14571 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
14572 l_rec_acct_attrs.array_char_value(4) :=
14573 xla_ae_sources_pkg.GetSystemSourceChar(
14574 p_source_code => 'XLA_ENTITY_CODE'
14575 , p_source_type_code => 'Y'
14576 , p_source_application_id => 602
14577 );
14578 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
14579 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
14580 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
14581 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
14582 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
14583 l_rec_acct_attrs.array_num_value(7) := p_source_21;
14584 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14585 l_rec_acct_attrs.array_char_value(8) := p_source_22;
14586 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
14587 l_rec_acct_attrs.array_char_value(9) := p_source_23;
14588 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
14589 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
14590 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14591 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
14592 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
14593 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
14594 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
14595 l_rec_acct_attrs.array_char_value(13) := p_source_17;
14596 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
14597 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
14598 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
14599 l_rec_acct_attrs.array_num_value(15) := p_source_26;
14600 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
14601 l_rec_acct_attrs.array_char_value(16) := p_source_27;
14602 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
14603 l_rec_acct_attrs.array_num_value(17) := p_source_28;
14604 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
14605 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
14606 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
14607 l_rec_acct_attrs.array_num_value(19) := p_source_26;
14608 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
14609 l_rec_acct_attrs.array_char_value(20) := p_source_27;
14610 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
14611 l_rec_acct_attrs.array_num_value(21) := p_source_28;
14612 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
14613 l_rec_acct_attrs.array_char_value(22) := p_source_29;
14614 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
14615 l_rec_acct_attrs.array_num_value(23) := p_source_26;
14616 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
14620 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
14617 l_rec_acct_attrs.array_char_value(24) := p_source_27;
14618 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
14619 l_rec_acct_attrs.array_num_value(25) := p_source_28;
14621 l_rec_acct_attrs.array_char_value(26) := p_source_31;
14622 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
14623 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
14624 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
14625 l_rec_acct_attrs.array_char_value(28) := p_source_22;
14626 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
14627 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
14628 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
14629 l_rec_acct_attrs.array_num_value(30) := p_source_32;
14630 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
14631 l_rec_acct_attrs.array_num_value(31) := p_source_32;
14632
14633 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14634 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14635
14636 ---------------------------------------------------------------------------------------------------------------
14637 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14638 ---------------------------------------------------------------------------------------------------------------
14639 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14640
14641 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14642 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14643
14644 IF xla_accounting_cache_pkg.GetValueChar
14645 (p_source_code => 'LEDGER_CATEGORY_CODE'
14646 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14647 AND l_bflow_method_code = 'PRIOR_ENTRY'
14648 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14649 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14650 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14651 )
14652 THEN
14653 xla_ae_lines_pkg.BflowUpgEntry
14654 (p_business_method_code => l_bflow_method_code
14655 ,p_business_class_code => l_bflow_class_code
14656 ,p_balance_type => l_balance_type_code);
14657 ELSE
14658 NULL;
14659 XLA_AE_LINES_PKG.business_flow_validation(
14660 p_business_method_code => l_bflow_method_code
14661 ,p_business_class_code => l_bflow_class_code
14662 ,p_inherit_description_flag => l_inherit_desc_flag);
14663 END IF;
14664
14665 --
14666 -- call analytical criteria
14667 --
14668 -- Inherited Analytical Criteria for business flow method of Prior Entry.
14669 --
14670 -- call description
14671 --
14672 -- No description or it is inherited.
14673 --
14674 -- call ADRs
14675 -- Bug 4922099
14676 --
14677 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14678 (NVL(l_actual_upg_option, 'N') = 'O') OR
14679 (NVL(l_enc_upg_option, 'N') = 'O')
14680 )
14681 THEN
14682 NULL;
14683 --
14684 --
14685
14686 --
14687 --
14688 END IF;
14689 --
14690 -- Bug 4922099
14691 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14692 (NVL(l_enc_upg_option, 'N') = 'O')
14693 ) AND
14694 (l_bflow_method_code = 'PRIOR_ENTRY')
14695 )
14696 THEN
14697 IF
14698 --
14699 1 = 1
14700 --
14701 THEN
14702 xla_accounting_err_pkg.build_message
14703 (p_appli_s_name => 'XLA'
14704 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14705 ,p_token_1 => 'LINE_NUMBER'
14706 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14707 ,p_token_2 => 'LINE_TYPE_NAME'
14708 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14709 l_component_type
14710 ,l_component_code
14711 ,l_component_type_code
14712 ,l_component_appl_id
14713 ,l_amb_context_code
14714 ,l_entity_code
14715 ,l_event_class_code
14716 )
14717 ,p_token_3 => 'OWNER'
14718 ,p_value_3 => xla_lookups_pkg.get_meaning(
14719 p_lookup_type => 'XLA_OWNER_TYPE'
14720 ,p_lookup_code => l_component_type_code
14724 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14721 )
14722 ,p_token_4 => 'PRODUCT_NAME'
14723 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14725 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14726 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14727 ,p_ae_header_id => NULL
14728 );
14729
14730 IF (C_LEVEL_ERROR>= g_log_level) THEN
14731 trace
14732 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14733 ,p_level => C_LEVEL_ERROR
14734 ,p_module => l_log_module);
14735 END IF;
14736 END IF;
14737 END IF;
14738 --
14739 --
14740 ------------------------------------------------------------------------------------------------
14741 -- 4219869 Business Flow
14742 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14743 -- Prior Entry. Currently, the following code is always generated.
14744 ------------------------------------------------------------------------------------------------
14745 -- No ValidateCurrentLine for business flow method of Prior Entry
14746
14747 ------------------------------------------------------------------------------------
14748 -- 4219869 Business Flow
14749 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14750 ------------------------------------------------------------------------------------
14751 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14752
14753 ----------------------------------------------------------------------------------
14754 -- 4219869 Business Flow
14755 -- Update journal entry status -- Need to generate this within IF <condition>
14756 ----------------------------------------------------------------------------------
14757 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14758 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14759 ,p_balance_type_code => l_balance_type_code
14760 );
14761
14762 -------------------------------------------------------------------------------------------
14763 -- 4262811 - Generate the Accrual Reversal lines
14764 -------------------------------------------------------------------------------------------
14765 BEGIN
14766 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14767 (g_array_event(p_event_id).array_value_num('header_index'));
14768 IF l_acc_rev_flag IS NULL THEN
14769 l_acc_rev_flag := 'N';
14770 END IF;
14771 EXCEPTION
14772 WHEN OTHERS THEN
14773 l_acc_rev_flag := 'N';
14774 END;
14775 --
14776 IF (l_acc_rev_flag = 'Y') THEN
14777
14778 -- 4645092 ------------------------------------------------------------------------------
14779 -- To allow MPA report to determine if it should generate report process
14780 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14781 ------------------------------------------------------------------------------------------
14782
14783 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14784 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14785
14786 --
14787 -- Update the line information that should be overwritten
14788 --
14789 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14790 p_header_num => 1);
14791 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14792
14793 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14794
14795 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14796 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14797 END IF;
14798
14799 --
14800 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14801 --
14802 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14803 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14804 ELSE
14805 ---------------------------------------------------------------------------------------------------
14806 -- 4262811a Switch Sign
14807 ---------------------------------------------------------------------------------------------------
14808 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14809 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14810 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14811 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14812 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14813 -- 5132302
14814 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14815 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14816
14817 END IF;
14818
14819 -- 4955764
14820 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14821 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14822
14823
14824 XLA_AE_LINES_PKG.ValidateCurrentLine;
14825 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14826
14827 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14828 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14829 ,p_balance_type_code => l_balance_type_code);
14830
14831 END IF;
14832
14833 -----------------------------------------------------------------------------------------
14834 -- 4262811 Multiperiod Accounting
14835 -----------------------------------------------------------------------------------------
14836 -- No MPA option is assigned.
14837
14838
14839 END IF;
14840 END IF;
14841 --
14842
14843 --
14844 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14845 trace
14846 (p_msg => 'END of AcctLineType_33'
14847 ,p_level => C_LEVEL_PROCEDURE
14848 ,p_module => l_log_module);
14849 END IF;
14850 --
14851 EXCEPTION
14852 WHEN xla_exceptions_pkg.application_exception THEN
14853 RAISE;
14854 WHEN OTHERS THEN
14855 xla_exceptions_pkg.raise_message
14856 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_33');
14857 END AcctLineType_33;
14858 --
14859
14860 ---------------------------------------
14861 --
14862 -- PRIVATE FUNCTION
14863 -- AcctLineType_34
14864 --
14865 ---------------------------------------
14866 PROCEDURE AcctLineType_34 (
14867 p_application_id IN NUMBER
14868 ,p_event_id IN NUMBER
14869 ,p_calculate_acctd_flag IN VARCHAR2
14870 ,p_calculate_g_l_flag IN VARCHAR2
14871 ,p_actual_flag IN OUT VARCHAR2
14872 ,p_balance_type_code OUT VARCHAR2
14873 ,p_gain_or_loss_ref OUT VARCHAR2
14874
14875 --Budget Account
14876 , p_source_9 IN NUMBER
14877 --Main Or Backing Code
14878 , p_source_13 IN VARCHAR2
14879 --Accounting Reversal Flag
14880 , p_source_15 IN VARCHAR2
14881 --Distribution Link Type
14882 , p_source_17 IN VARCHAR2
14883 --PO Distribution Identifier
14884 , p_source_19 IN NUMBER
14885 --PO Header Identifier
14886 , p_source_20 IN NUMBER
14887 --Applied To Application Identifier
14888 , p_source_21 IN NUMBER
14889 --Applied To Distribution Link Type
14890 , p_source_22 IN VARCHAR2
14891 --Applied To Entity Code
14892 , p_source_23 IN VARCHAR2
14893 --Applied To Distribution Identifier 1
14894 , p_source_24 IN NUMBER
14895 --Applied To Header Identifier 1
14896 , p_source_25 IN NUMBER
14897 --Entered Amount
14898 , p_source_26 IN NUMBER
14899 --Currency Code
14900 , p_source_27 IN VARCHAR2
14901 --Accounted Amount
14902 , p_source_28 IN NUMBER
14903 --PO Encumbrance Upgrade Option
14904 , p_source_29 IN VARCHAR2
14905 --JFMIP Reference
14906 , p_source_31 IN VARCHAR2
14907 --PO Upgrade Encumbrance Type Identifier
14908 , p_source_32 IN NUMBER
14909 --Allocated to Main Document Distribution Type
14910 , p_source_33 IN VARCHAR2
14911 --Allocated to Main Document Distribution Identifier
14912 , p_source_34 IN NUMBER
14913 )
14914 IS
14915
14916 l_component_type VARCHAR2(80);
14917 l_component_code VARCHAR2(30);
14918 l_component_type_code VARCHAR2(1);
14919 l_component_appl_id INTEGER;
14920 l_amb_context_code VARCHAR2(30);
14921 l_entity_code VARCHAR2(30);
14922 l_event_class_code VARCHAR2(30);
14923 l_ae_header_id NUMBER;
14924 l_event_type_code VARCHAR2(30);
14925 l_line_definition_code VARCHAR2(30);
14926 l_line_definition_owner_code VARCHAR2(1);
14927 --
14928 -- adr variables
14929 l_segment VARCHAR2(30);
14930 l_ccid NUMBER;
14931 l_adr_transaction_coa_id NUMBER;
14932 l_adr_accounting_coa_id NUMBER;
14933 l_adr_flexfield_segment_code VARCHAR2(30);
14934 l_adr_flex_value_set_id NUMBER;
14935 l_adr_value_type_code VARCHAR2(30);
14936 l_adr_value_combination_id NUMBER;
14937 l_adr_value_segment_code VARCHAR2(30);
14938
14939 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14940 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14941 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14942 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14943
14944 -- 4262811 Variables ------------------------------------------------------------------------------------------
14945 l_entered_amt_idx NUMBER;
14946 l_accted_amt_idx NUMBER;
14947 l_acc_rev_flag VARCHAR2(1);
14948 l_accrual_line_num NUMBER;
14949 l_tmp_amt NUMBER;
14950 l_acc_rev_natural_side_code VARCHAR2(1);
14951
14952 l_num_entries NUMBER;
14953 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14954 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14955 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14956 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14957 l_recog_line_1 NUMBER;
14958 l_recog_line_2 NUMBER;
14959
14960 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14961 l_bflow_applied_to_amt NUMBER; -- 5132302
14962 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14963
14964 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14965
14966 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14967 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14968
14969 ---------------------------------------------------------------------------------------------------------------
14970
14971
14972 --
14973 -- bulk performance
14974 --
14975 l_balance_type_code VARCHAR2(1);
14976 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14977 l_log_module VARCHAR2(240);
14978
14979 --
14980 -- Upgrade strategy
14981 --
14982 l_actual_upg_option VARCHAR2(1);
14983 l_enc_upg_option VARCHAR2(1);
14984
14985 --
14986 BEGIN
14987 --
14988 IF g_log_enabled THEN
14989 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_34';
14990 END IF;
14991 --
14992 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14993
14994 trace
14995 (p_msg => 'BEGIN of AcctLineType_34'
14996 ,p_level => C_LEVEL_PROCEDURE
14997 ,p_module => l_log_module);
14998
14999 END IF;
15000 --
15001 l_component_type := 'AMB_JLT';
15002 l_component_code := 'FV_PO_REINSTATE_BPA_DR';
15003 l_component_type_code := 'S';
15004 l_component_appl_id := 201;
15005 l_amb_context_code := 'DEFAULT';
15006 l_entity_code := 'PURCHASE_ORDER';
15007 l_event_class_code := 'PO_PA';
15008 l_event_type_code := 'PO_PA_ALL';
15009 l_line_definition_owner_code := 'S';
15010 l_line_definition_code := 'FV_PO_ALL';
15011 --
15012 l_balance_type_code := 'A';
15013 l_segment := NULL;
15014 l_ccid := NULL;
15015 l_adr_transaction_coa_id := NULL;
15019 l_adr_value_type_code := NULL;
15016 l_adr_accounting_coa_id := NULL;
15017 l_adr_flexfield_segment_code := NULL;
15018 l_adr_flex_value_set_id := NULL;
15020 l_adr_value_combination_id := NULL;
15021 l_adr_value_segment_code := NULL;
15022
15023 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
15024 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
15025 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
15026 l_budgetary_control_flag := 'Y';
15027
15028 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15029 l_bflow_applied_to_amt := NULL; -- 5132302
15030 l_entered_amt_idx := NULL; -- 4262811
15031 l_accted_amt_idx := NULL; -- 4262811
15032 l_acc_rev_flag := NULL; -- 4262811
15033 l_accrual_line_num := NULL; -- 4262811
15034 l_tmp_amt := NULL; -- 4262811
15035 --
15036
15037 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15038 l_balance_type_code <> 'B' THEN
15039 IF (NVL(
15040 xla_ae_sources_pkg.GetSystemSourceChar(
15041 p_source_code => 'XLA_EVENT_TYPE_CODE'
15042 , p_source_type_code => 'Y'
15043 , p_source_application_id => 602
15044 ),'
15045 ') = 'PO_PA_UNRESERVED' OR
15046 NVL(
15047 xla_ae_sources_pkg.GetSystemSourceChar(
15048 p_source_code => 'XLA_EVENT_TYPE_CODE'
15049 , p_source_type_code => 'Y'
15050 , p_source_application_id => 602
15051 ),'
15052 ') = 'PO_PA_INV_CANCELLED' OR
15053 NVL(
15054 xla_ae_sources_pkg.GetSystemSourceChar(
15055 p_source_code => 'XLA_EVENT_TYPE_CODE'
15056 , p_source_type_code => 'Y'
15057 , p_source_application_id => 602
15058 ),'
15059 ') = 'PO_PA_REJECTED') AND
15060 NVL(p_source_13,'
15061 ') = 'B_PA'
15062 THEN
15063
15064 --
15065 XLA_AE_LINES_PKG.SetNewLine;
15066
15067 p_balance_type_code := l_balance_type_code;
15068 -- set the flag so later we will know whether the gain loss line needs to be created
15069
15070 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15071 p_actual_flag :='A';
15072 END IF;
15073
15074 --
15075 -- bulk performance
15076 --
15077 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15078 p_header_num => 0); -- 4262811
15079 --
15080 -- set accounting line options
15081 --
15082 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15083 p_natural_side_code => 'D'
15084 , p_gain_or_loss_flag => 'N'
15085 , p_gl_transfer_mode_code => 'S'
15086 , p_acct_entry_type_code => 'A'
15087 , p_switch_side_flag => 'N'
15088 , p_merge_duplicate_code => 'N'
15089 );
15090 --
15091 l_acc_rev_natural_side_code := 'C'; -- 4262811
15092 --
15093 --
15094 -- set accounting line type info
15095 --
15096 xla_ae_lines_pkg.SetAcctLineType
15097 (p_component_type => l_component_type
15098 ,p_event_type_code => l_event_type_code
15099 ,p_line_definition_owner_code => l_line_definition_owner_code
15100 ,p_line_definition_code => l_line_definition_code
15101 ,p_accounting_line_code => l_component_code
15102 ,p_accounting_line_type_code => l_component_type_code
15103 ,p_accounting_line_appl_id => l_component_appl_id
15104 ,p_amb_context_code => l_amb_context_code
15105 ,p_entity_code => l_entity_code
15106 ,p_event_class_code => l_event_class_code);
15107 --
15108 -- set accounting class
15109 --
15110 xla_ae_lines_pkg.SetAcctClass(
15111 p_accounting_class_code => 'PURCHASE_ORDER'
15112 , p_ae_header_id => l_ae_header_id
15113 );
15114
15115 --
15116 -- set rounding class
15117 --
15118 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15119 'PURCHASE_ORDER';
15120
15121 --
15122 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15123 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15124 --
15125 -- bulk performance
15126 --
15127 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15128
15129 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15130 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15131
15132 -- 4955764
15133 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15134 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15135
15136 -- 4458381 Public Sector Enh
15137
15138 --
15139 -- set accounting attributes for the line type
15140 --
15141 l_entered_amt_idx := 23;
15142 l_accted_amt_idx := 25;
15143 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15144 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15145 l_rec_acct_attrs.array_char_value(1) := p_source_15;
15146 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15147 l_rec_acct_attrs.array_num_value(2) :=
15148 xla_ae_sources_pkg.GetSystemSourceNum(
15149 p_source_code => 'XLA_EVENT_APPL_ID'
15150 , p_source_type_code => 'Y'
15151 , p_source_application_id => 602
15152 );
15153 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15154 l_rec_acct_attrs.array_char_value(3) := p_source_33;
15155 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15156 l_rec_acct_attrs.array_char_value(4) :=
15157 xla_ae_sources_pkg.GetSystemSourceChar(
15158 p_source_code => 'XLA_ENTITY_CODE'
15159 , p_source_type_code => 'Y'
15160 , p_source_application_id => 602
15161 );
15162 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15163 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
15164 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15165 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
15166 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
15167 l_rec_acct_attrs.array_num_value(7) := p_source_21;
15168 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15169 l_rec_acct_attrs.array_char_value(8) := p_source_22;
15170 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
15171 l_rec_acct_attrs.array_char_value(9) := p_source_23;
15172 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
15173 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
15174 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15175 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
15176 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
15177 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
15178 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
15179 l_rec_acct_attrs.array_char_value(13) := p_source_17;
15180 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
15181 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
15182 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
15183 l_rec_acct_attrs.array_num_value(15) := p_source_26;
15184 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
15185 l_rec_acct_attrs.array_char_value(16) := p_source_27;
15186 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
15187 l_rec_acct_attrs.array_num_value(17) := p_source_28;
15188 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
15189 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
15190 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
15194 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
15191 l_rec_acct_attrs.array_num_value(19) := p_source_26;
15192 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
15193 l_rec_acct_attrs.array_char_value(20) := p_source_27;
15195 l_rec_acct_attrs.array_num_value(21) := p_source_28;
15196 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
15197 l_rec_acct_attrs.array_char_value(22) := p_source_29;
15198 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
15199 l_rec_acct_attrs.array_num_value(23) := p_source_26;
15200 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
15201 l_rec_acct_attrs.array_char_value(24) := p_source_27;
15202 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
15203 l_rec_acct_attrs.array_num_value(25) := p_source_28;
15204 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
15205 l_rec_acct_attrs.array_char_value(26) := p_source_31;
15206 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
15207 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
15208 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
15209 l_rec_acct_attrs.array_char_value(28) := p_source_22;
15210 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
15211 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
15212 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
15213 l_rec_acct_attrs.array_num_value(30) := p_source_32;
15214 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
15215 l_rec_acct_attrs.array_num_value(31) := p_source_32;
15216
15217 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15218 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15219
15220 ---------------------------------------------------------------------------------------------------------------
15221 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15222 ---------------------------------------------------------------------------------------------------------------
15223 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15224
15225 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15226 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15227
15228 IF xla_accounting_cache_pkg.GetValueChar
15229 (p_source_code => 'LEDGER_CATEGORY_CODE'
15230 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15231 AND l_bflow_method_code = 'PRIOR_ENTRY'
15232 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15233 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15234 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15235 )
15236 THEN
15237 xla_ae_lines_pkg.BflowUpgEntry
15238 (p_business_method_code => l_bflow_method_code
15239 ,p_business_class_code => l_bflow_class_code
15240 ,p_balance_type => l_balance_type_code);
15241 ELSE
15242 NULL;
15243 XLA_AE_LINES_PKG.business_flow_validation(
15244 p_business_method_code => l_bflow_method_code
15245 ,p_business_class_code => l_bflow_class_code
15246 ,p_inherit_description_flag => l_inherit_desc_flag);
15247 END IF;
15248
15249 --
15250 -- call analytical criteria
15251 --
15252 -- Inherited Analytical Criteria for business flow method of Prior Entry.
15253 --
15254 -- call description
15255 --
15256 -- No description or it is inherited.
15257 --
15258 -- call ADRs
15259 -- Bug 4922099
15260 --
15261 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15262 (NVL(l_actual_upg_option, 'N') = 'O') OR
15263 (NVL(l_enc_upg_option, 'N') = 'O')
15264 )
15265 THEN
15266 NULL;
15267 --
15268 --
15269
15270 --
15271 --
15272 END IF;
15273 --
15274 -- Bug 4922099
15275 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15276 (NVL(l_enc_upg_option, 'N') = 'O')
15277 ) AND
15278 (l_bflow_method_code = 'PRIOR_ENTRY')
15279 )
15280 THEN
15281 IF
15282 --
15283 1 = 1
15284 --
15285 THEN
15286 xla_accounting_err_pkg.build_message
15287 (p_appli_s_name => 'XLA'
15288 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15289 ,p_token_1 => 'LINE_NUMBER'
15290 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15291 ,p_token_2 => 'LINE_TYPE_NAME'
15292 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15293 l_component_type
15294 ,l_component_code
15295 ,l_component_type_code
15296 ,l_component_appl_id
15300 )
15297 ,l_amb_context_code
15298 ,l_entity_code
15299 ,l_event_class_code
15301 ,p_token_3 => 'OWNER'
15302 ,p_value_3 => xla_lookups_pkg.get_meaning(
15303 p_lookup_type => 'XLA_OWNER_TYPE'
15304 ,p_lookup_code => l_component_type_code
15305 )
15306 ,p_token_4 => 'PRODUCT_NAME'
15307 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15308 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15309 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15310 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15311 ,p_ae_header_id => NULL
15312 );
15313
15314 IF (C_LEVEL_ERROR>= g_log_level) THEN
15315 trace
15316 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15317 ,p_level => C_LEVEL_ERROR
15318 ,p_module => l_log_module);
15319 END IF;
15320 END IF;
15321 END IF;
15322 --
15323 --
15324 ------------------------------------------------------------------------------------------------
15325 -- 4219869 Business Flow
15326 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15327 -- Prior Entry. Currently, the following code is always generated.
15328 ------------------------------------------------------------------------------------------------
15329 -- No ValidateCurrentLine for business flow method of Prior Entry
15330
15331 ------------------------------------------------------------------------------------
15332 -- 4219869 Business Flow
15333 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15334 ------------------------------------------------------------------------------------
15335 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15336
15337 ----------------------------------------------------------------------------------
15338 -- 4219869 Business Flow
15339 -- Update journal entry status -- Need to generate this within IF <condition>
15340 ----------------------------------------------------------------------------------
15341 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15342 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15343 ,p_balance_type_code => l_balance_type_code
15344 );
15345
15346 -------------------------------------------------------------------------------------------
15347 -- 4262811 - Generate the Accrual Reversal lines
15348 -------------------------------------------------------------------------------------------
15349 BEGIN
15350 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15351 (g_array_event(p_event_id).array_value_num('header_index'));
15352 IF l_acc_rev_flag IS NULL THEN
15353 l_acc_rev_flag := 'N';
15354 END IF;
15355 EXCEPTION
15356 WHEN OTHERS THEN
15357 l_acc_rev_flag := 'N';
15358 END;
15359 --
15360 IF (l_acc_rev_flag = 'Y') THEN
15361
15362 -- 4645092 ------------------------------------------------------------------------------
15363 -- To allow MPA report to determine if it should generate report process
15364 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15365 ------------------------------------------------------------------------------------------
15366
15367 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15368 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15369
15370 --
15371 -- Update the line information that should be overwritten
15372 --
15373 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15374 p_header_num => 1);
15375 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15376
15377 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15378
15379 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15380 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15381 END IF;
15382
15383 --
15384 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15385 --
15386 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15387 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15388 ELSE
15389 ---------------------------------------------------------------------------------------------------
15390 -- 4262811a Switch Sign
15394 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15391 ---------------------------------------------------------------------------------------------------
15392 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15393 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15395 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15396 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15397 -- 5132302
15398 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15399 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15400
15401 END IF;
15402
15403 -- 4955764
15404 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15405 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15406
15407
15408 XLA_AE_LINES_PKG.ValidateCurrentLine;
15409 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15410
15411 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15412 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15413 ,p_balance_type_code => l_balance_type_code);
15414
15415 END IF;
15416
15417 -----------------------------------------------------------------------------------------
15418 -- 4262811 Multiperiod Accounting
15419 -----------------------------------------------------------------------------------------
15420 -- No MPA option is assigned.
15421
15422
15423 END IF;
15424 END IF;
15425 --
15426
15427 --
15428 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15429 trace
15430 (p_msg => 'END of AcctLineType_34'
15431 ,p_level => C_LEVEL_PROCEDURE
15432 ,p_module => l_log_module);
15433 END IF;
15434 --
15435 EXCEPTION
15436 WHEN xla_exceptions_pkg.application_exception THEN
15437 RAISE;
15438 WHEN OTHERS THEN
15439 xla_exceptions_pkg.raise_message
15440 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_34');
15441 END AcctLineType_34;
15442 --
15443
15444 ---------------------------------------
15445 --
15446 -- PRIVATE FUNCTION
15447 -- AcctLineType_35
15448 --
15449 ---------------------------------------
15450 PROCEDURE AcctLineType_35 (
15451 p_application_id IN NUMBER
15452 ,p_event_id IN NUMBER
15453 ,p_calculate_acctd_flag IN VARCHAR2
15454 ,p_calculate_g_l_flag IN VARCHAR2
15455 ,p_actual_flag IN OUT VARCHAR2
15456 ,p_balance_type_code OUT VARCHAR2
15457 ,p_gain_or_loss_ref OUT VARCHAR2
15458
15459 --Budget Account
15460 , p_source_9 IN NUMBER
15461 --Main Or Backing Code
15462 , p_source_13 IN VARCHAR2
15463 --Accounting Reversal Flag
15464 , p_source_15 IN VARCHAR2
15465 --Distribution Link Type
15466 , p_source_17 IN VARCHAR2
15467 --PO Distribution Identifier
15468 , p_source_19 IN NUMBER
15469 --PO Header Identifier
15470 , p_source_20 IN NUMBER
15471 --Applied To Application Identifier
15472 , p_source_21 IN NUMBER
15473 --Applied To Distribution Link Type
15474 , p_source_22 IN VARCHAR2
15475 --Applied To Entity Code
15476 , p_source_23 IN VARCHAR2
15477 --Applied To Distribution Identifier 1
15478 , p_source_24 IN NUMBER
15479 --Applied To Header Identifier 1
15480 , p_source_25 IN NUMBER
15481 --Entered Amount
15482 , p_source_26 IN NUMBER
15483 --Currency Code
15484 , p_source_27 IN VARCHAR2
15485 --Accounted Amount
15486 , p_source_28 IN NUMBER
15487 --PO Encumbrance Upgrade Option
15488 , p_source_29 IN VARCHAR2
15489 --JFMIP Reference
15490 , p_source_31 IN VARCHAR2
15491 --PO Upgrade Encumbrance Type Identifier
15492 , p_source_32 IN NUMBER
15493 --Allocated to Main Document Distribution Type
15494 , p_source_33 IN VARCHAR2
15495 --Allocated to Main Document Distribution Identifier
15496 , p_source_34 IN NUMBER
15497 )
15498 IS
15499
15500 l_component_type VARCHAR2(80);
15501 l_component_code VARCHAR2(30);
15502 l_component_type_code VARCHAR2(1);
15503 l_component_appl_id INTEGER;
15504 l_amb_context_code VARCHAR2(30);
15505 l_entity_code VARCHAR2(30);
15506 l_event_class_code VARCHAR2(30);
15507 l_ae_header_id NUMBER;
15508 l_event_type_code VARCHAR2(30);
15509 l_line_definition_code VARCHAR2(30);
15510 l_line_definition_owner_code VARCHAR2(1);
15511 --
15512 -- adr variables
15513 l_segment VARCHAR2(30);
15514 l_ccid NUMBER;
15515 l_adr_transaction_coa_id NUMBER;
15516 l_adr_accounting_coa_id NUMBER;
15517 l_adr_flexfield_segment_code VARCHAR2(30);
15518 l_adr_flex_value_set_id NUMBER;
15519 l_adr_value_type_code VARCHAR2(30);
15520 l_adr_value_combination_id NUMBER;
15521 l_adr_value_segment_code VARCHAR2(30);
15522
15523 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15524 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15525 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15526 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15527
15528 -- 4262811 Variables ------------------------------------------------------------------------------------------
15529 l_entered_amt_idx NUMBER;
15530 l_accted_amt_idx NUMBER;
15531 l_acc_rev_flag VARCHAR2(1);
15532 l_accrual_line_num NUMBER;
15533 l_tmp_amt NUMBER;
15534 l_acc_rev_natural_side_code VARCHAR2(1);
15535
15536 l_num_entries NUMBER;
15537 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15538 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15539 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15540 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15541 l_recog_line_1 NUMBER;
15542 l_recog_line_2 NUMBER;
15543
15544 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15545 l_bflow_applied_to_amt NUMBER; -- 5132302
15546 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15547
15548 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15549
15550 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15551 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15552
15553 ---------------------------------------------------------------------------------------------------------------
15554
15555
15556 --
15557 -- bulk performance
15558 --
15559 l_balance_type_code VARCHAR2(1);
15560 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15561 l_log_module VARCHAR2(240);
15562
15563 --
15564 -- Upgrade strategy
15565 --
15566 l_actual_upg_option VARCHAR2(1);
15567 l_enc_upg_option VARCHAR2(1);
15568
15569 --
15570 BEGIN
15571 --
15572 IF g_log_enabled THEN
15573 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_35';
15574 END IF;
15575 --
15576 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15577
15578 trace
15579 (p_msg => 'BEGIN of AcctLineType_35'
15580 ,p_level => C_LEVEL_PROCEDURE
15581 ,p_module => l_log_module);
15582
15583 END IF;
15584 --
15585 l_component_type := 'AMB_JLT';
15586 l_component_code := 'FV_PO_REINSTATE_REQ_CR';
15587 l_component_type_code := 'S';
15588 l_component_appl_id := 201;
15589 l_amb_context_code := 'DEFAULT';
15590 l_entity_code := 'PURCHASE_ORDER';
15591 l_event_class_code := 'PO_PA';
15592 l_event_type_code := 'PO_PA_ALL';
15593 l_line_definition_owner_code := 'S';
15594 l_line_definition_code := 'FV_PO_ALL';
15595 --
15596 l_balance_type_code := 'A';
15597 l_segment := NULL;
15598 l_ccid := NULL;
15599 l_adr_transaction_coa_id := NULL;
15600 l_adr_accounting_coa_id := NULL;
15601 l_adr_flexfield_segment_code := NULL;
15602 l_adr_flex_value_set_id := NULL;
15603 l_adr_value_type_code := NULL;
15604 l_adr_value_combination_id := NULL;
15605 l_adr_value_segment_code := NULL;
15606
15607 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
15608 l_bflow_class_code := 'FV_REQ_DR'; -- 4219869 Business Flow
15609 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
15610 l_budgetary_control_flag := 'Y';
15611
15612 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15613 l_bflow_applied_to_amt := NULL; -- 5132302
15614 l_entered_amt_idx := NULL; -- 4262811
15615 l_accted_amt_idx := NULL; -- 4262811
15616 l_acc_rev_flag := NULL; -- 4262811
15617 l_accrual_line_num := NULL; -- 4262811
15618 l_tmp_amt := NULL; -- 4262811
15619 --
15620
15621 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15622 l_balance_type_code <> 'B' THEN
15623 IF (NVL(
15624 xla_ae_sources_pkg.GetSystemSourceChar(
15625 p_source_code => 'XLA_EVENT_TYPE_CODE'
15626 , p_source_type_code => 'Y'
15627 , p_source_application_id => 602
15628 ),'
15629 ') = 'PO_PA_UNRESERVED' OR
15630 NVL(
15631 xla_ae_sources_pkg.GetSystemSourceChar(
15632 p_source_code => 'XLA_EVENT_TYPE_CODE'
15633 , p_source_type_code => 'Y'
15634 , p_source_application_id => 602
15635 ),'
15636 ') = 'PO_PA_INV_CANCELLED' OR
15637 NVL(
15638 xla_ae_sources_pkg.GetSystemSourceChar(
15639 p_source_code => 'XLA_EVENT_TYPE_CODE'
15640 , p_source_type_code => 'Y'
15641 , p_source_application_id => 602
15642 ),'
15643 ') = 'PO_PA_REJECTED') AND
15644 NVL(p_source_13,'
15645 ') = 'B_REQ'
15646 THEN
15647
15648 --
15649 XLA_AE_LINES_PKG.SetNewLine;
15650
15651 p_balance_type_code := l_balance_type_code;
15652 -- set the flag so later we will know whether the gain loss line needs to be created
15653
15654 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15655 p_actual_flag :='A';
15656 END IF;
15657
15658 --
15659 -- bulk performance
15660 --
15661 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15662 p_header_num => 0); -- 4262811
15663 --
15664 -- set accounting line options
15665 --
15666 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15667 p_natural_side_code => 'C'
15668 , p_gain_or_loss_flag => 'N'
15669 , p_gl_transfer_mode_code => 'S'
15670 , p_acct_entry_type_code => 'A'
15671 , p_switch_side_flag => 'N'
15672 , p_merge_duplicate_code => 'N'
15673 );
15674 --
15675 l_acc_rev_natural_side_code := 'D'; -- 4262811
15676 --
15677 --
15678 -- set accounting line type info
15679 --
15680 xla_ae_lines_pkg.SetAcctLineType
15681 (p_component_type => l_component_type
15682 ,p_event_type_code => l_event_type_code
15683 ,p_line_definition_owner_code => l_line_definition_owner_code
15684 ,p_line_definition_code => l_line_definition_code
15685 ,p_accounting_line_code => l_component_code
15686 ,p_accounting_line_type_code => l_component_type_code
15687 ,p_accounting_line_appl_id => l_component_appl_id
15688 ,p_amb_context_code => l_amb_context_code
15689 ,p_entity_code => l_entity_code
15690 ,p_event_class_code => l_event_class_code);
15691 --
15692 -- set accounting class
15693 --
15694 xla_ae_lines_pkg.SetAcctClass(
15695 p_accounting_class_code => 'REQUISITION'
15696 , p_ae_header_id => l_ae_header_id
15697 );
15698
15699 --
15700 -- set rounding class
15701 --
15702 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15703 'REQUISITION';
15704
15705 --
15706 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15707 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15708 --
15709 -- bulk performance
15710 --
15711 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15712
15713 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15714 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15715
15716 -- 4955764
15717 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15718 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15719
15720 -- 4458381 Public Sector Enh
15721
15722 --
15723 -- set accounting attributes for the line type
15724 --
15725 l_entered_amt_idx := 23;
15726 l_accted_amt_idx := 25;
15727 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15728 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15729 l_rec_acct_attrs.array_char_value(1) := p_source_15;
15730 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15731 l_rec_acct_attrs.array_num_value(2) :=
15732 xla_ae_sources_pkg.GetSystemSourceNum(
15733 p_source_code => 'XLA_EVENT_APPL_ID'
15734 , p_source_type_code => 'Y'
15735 , p_source_application_id => 602
15736 );
15737 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15738 l_rec_acct_attrs.array_char_value(3) := p_source_33;
15739 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15740 l_rec_acct_attrs.array_char_value(4) :=
15741 xla_ae_sources_pkg.GetSystemSourceChar(
15742 p_source_code => 'XLA_ENTITY_CODE'
15743 , p_source_type_code => 'Y'
15744 , p_source_application_id => 602
15745 );
15746 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15747 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
15748 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15749 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
15750 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
15751 l_rec_acct_attrs.array_num_value(7) := p_source_21;
15752 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15753 l_rec_acct_attrs.array_char_value(8) := p_source_22;
15754 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
15755 l_rec_acct_attrs.array_char_value(9) := p_source_23;
15756 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
15757 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
15758 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15759 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
15760 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
15761 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
15762 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
15763 l_rec_acct_attrs.array_char_value(13) := p_source_17;
15764 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
15765 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
15766 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
15767 l_rec_acct_attrs.array_num_value(15) := p_source_26;
15768 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
15769 l_rec_acct_attrs.array_char_value(16) := p_source_27;
15770 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
15771 l_rec_acct_attrs.array_num_value(17) := p_source_28;
15772 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
15773 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
15774 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
15775 l_rec_acct_attrs.array_num_value(19) := p_source_26;
15776 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
15777 l_rec_acct_attrs.array_char_value(20) := p_source_27;
15778 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
15779 l_rec_acct_attrs.array_num_value(21) := p_source_28;
15780 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
15781 l_rec_acct_attrs.array_char_value(22) := p_source_29;
15782 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
15783 l_rec_acct_attrs.array_num_value(23) := p_source_26;
15784 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
15785 l_rec_acct_attrs.array_char_value(24) := p_source_27;
15786 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
15787 l_rec_acct_attrs.array_num_value(25) := p_source_28;
15788 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
15789 l_rec_acct_attrs.array_char_value(26) := p_source_31;
15790 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
15791 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
15792 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
15793 l_rec_acct_attrs.array_char_value(28) := p_source_22;
15794 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
15795 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
15796 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
15797 l_rec_acct_attrs.array_num_value(30) := p_source_32;
15798 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
15799 l_rec_acct_attrs.array_num_value(31) := p_source_32;
15800
15801 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15802 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15803
15804 ---------------------------------------------------------------------------------------------------------------
15805 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15806 ---------------------------------------------------------------------------------------------------------------
15807 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15808
15809 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15810 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15811
15812 IF xla_accounting_cache_pkg.GetValueChar
15813 (p_source_code => 'LEDGER_CATEGORY_CODE'
15814 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15815 AND l_bflow_method_code = 'PRIOR_ENTRY'
15816 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15817 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15818 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15819 )
15820 THEN
15821 xla_ae_lines_pkg.BflowUpgEntry
15822 (p_business_method_code => l_bflow_method_code
15823 ,p_business_class_code => l_bflow_class_code
15824 ,p_balance_type => l_balance_type_code);
15825 ELSE
15826 NULL;
15827 XLA_AE_LINES_PKG.business_flow_validation(
15828 p_business_method_code => l_bflow_method_code
15829 ,p_business_class_code => l_bflow_class_code
15830 ,p_inherit_description_flag => l_inherit_desc_flag);
15831 END IF;
15832
15833 --
15834 -- call analytical criteria
15835 --
15836 -- Inherited Analytical Criteria for business flow method of Prior Entry.
15837 --
15838 -- call description
15839 --
15840 -- No description or it is inherited.
15841 --
15842 -- call ADRs
15843 -- Bug 4922099
15844 --
15845 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15846 (NVL(l_actual_upg_option, 'N') = 'O') OR
15847 (NVL(l_enc_upg_option, 'N') = 'O')
15848 )
15849 THEN
15850 NULL;
15851 --
15852 --
15853
15854 --
15855 --
15856 END IF;
15857 --
15858 -- Bug 4922099
15859 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15860 (NVL(l_enc_upg_option, 'N') = 'O')
15861 ) AND
15862 (l_bflow_method_code = 'PRIOR_ENTRY')
15863 )
15864 THEN
15865 IF
15866 --
15867 1 = 1
15868 --
15869 THEN
15870 xla_accounting_err_pkg.build_message
15871 (p_appli_s_name => 'XLA'
15872 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15873 ,p_token_1 => 'LINE_NUMBER'
15874 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15875 ,p_token_2 => 'LINE_TYPE_NAME'
15876 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15877 l_component_type
15878 ,l_component_code
15879 ,l_component_type_code
15880 ,l_component_appl_id
15881 ,l_amb_context_code
15882 ,l_entity_code
15883 ,l_event_class_code
15884 )
15885 ,p_token_3 => 'OWNER'
15886 ,p_value_3 => xla_lookups_pkg.get_meaning(
15887 p_lookup_type => 'XLA_OWNER_TYPE'
15888 ,p_lookup_code => l_component_type_code
15889 )
15890 ,p_token_4 => 'PRODUCT_NAME'
15891 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15892 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15893 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15894 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15895 ,p_ae_header_id => NULL
15896 );
15897
15898 IF (C_LEVEL_ERROR>= g_log_level) THEN
15899 trace
15900 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15901 ,p_level => C_LEVEL_ERROR
15902 ,p_module => l_log_module);
15903 END IF;
15904 END IF;
15905 END IF;
15906 --
15907 --
15908 ------------------------------------------------------------------------------------------------
15909 -- 4219869 Business Flow
15910 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15911 -- Prior Entry. Currently, the following code is always generated.
15912 ------------------------------------------------------------------------------------------------
15913 -- No ValidateCurrentLine for business flow method of Prior Entry
15914
15915 ------------------------------------------------------------------------------------
15916 -- 4219869 Business Flow
15917 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15918 ------------------------------------------------------------------------------------
15919 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15920
15921 ----------------------------------------------------------------------------------
15922 -- 4219869 Business Flow
15923 -- Update journal entry status -- Need to generate this within IF <condition>
15924 ----------------------------------------------------------------------------------
15925 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15926 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15927 ,p_balance_type_code => l_balance_type_code
15928 );
15929
15930 -------------------------------------------------------------------------------------------
15931 -- 4262811 - Generate the Accrual Reversal lines
15932 -------------------------------------------------------------------------------------------
15933 BEGIN
15934 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15935 (g_array_event(p_event_id).array_value_num('header_index'));
15936 IF l_acc_rev_flag IS NULL THEN
15937 l_acc_rev_flag := 'N';
15938 END IF;
15939 EXCEPTION
15940 WHEN OTHERS THEN
15941 l_acc_rev_flag := 'N';
15942 END;
15943 --
15944 IF (l_acc_rev_flag = 'Y') THEN
15945
15946 -- 4645092 ------------------------------------------------------------------------------
15947 -- To allow MPA report to determine if it should generate report process
15948 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15949 ------------------------------------------------------------------------------------------
15950
15951 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15952 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15953
15954 --
15955 -- Update the line information that should be overwritten
15956 --
15957 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15958 p_header_num => 1);
15959 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15960
15961 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15962
15963 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15964 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15965 END IF;
15966
15967 --
15968 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15969 --
15970 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15971 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15972 ELSE
15973 ---------------------------------------------------------------------------------------------------
15974 -- 4262811a Switch Sign
15975 ---------------------------------------------------------------------------------------------------
15976 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15977 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15978 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15979 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15980 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15981 -- 5132302
15982 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15983 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15984
15985 END IF;
15986
15987 -- 4955764
15988 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15989 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15990
15991
15992 XLA_AE_LINES_PKG.ValidateCurrentLine;
15993 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15994
15995 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15996 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15997 ,p_balance_type_code => l_balance_type_code);
15998
15999 END IF;
16000
16001 -----------------------------------------------------------------------------------------
16002 -- 4262811 Multiperiod Accounting
16003 -----------------------------------------------------------------------------------------
16004 -- No MPA option is assigned.
16005
16006
16007 END IF;
16008 END IF;
16009 --
16010
16011 --
16012 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16013 trace
16014 (p_msg => 'END of AcctLineType_35'
16015 ,p_level => C_LEVEL_PROCEDURE
16016 ,p_module => l_log_module);
16017 END IF;
16018 --
16019 EXCEPTION
16020 WHEN xla_exceptions_pkg.application_exception THEN
16021 RAISE;
16022 WHEN OTHERS THEN
16023 xla_exceptions_pkg.raise_message
16024 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_35');
16025 END AcctLineType_35;
16026 --
16027
16028 ---------------------------------------
16029 --
16030 -- PRIVATE FUNCTION
16031 -- AcctLineType_36
16032 --
16033 ---------------------------------------
16034 PROCEDURE AcctLineType_36 (
16035 p_application_id IN NUMBER
16036 ,p_event_id IN NUMBER
16037 ,p_calculate_acctd_flag IN VARCHAR2
16038 ,p_calculate_g_l_flag IN VARCHAR2
16039 ,p_actual_flag IN OUT VARCHAR2
16040 ,p_balance_type_code OUT VARCHAR2
16041 ,p_gain_or_loss_ref OUT VARCHAR2
16042
16043 --Budget Account
16044 , p_source_9 IN NUMBER
16045 --Main Or Backing Code
16046 , p_source_13 IN VARCHAR2
16047 --Accounting Reversal Flag
16048 , p_source_15 IN VARCHAR2
16049 --Distribution Link Type
16050 , p_source_17 IN VARCHAR2
16051 --PO Distribution Identifier
16052 , p_source_19 IN NUMBER
16053 --PO Header Identifier
16054 , p_source_20 IN NUMBER
16055 --Applied To Application Identifier
16056 , p_source_21 IN NUMBER
16057 --Applied To Distribution Link Type
16058 , p_source_22 IN VARCHAR2
16059 --Applied To Entity Code
16060 , p_source_23 IN VARCHAR2
16061 --Applied To Distribution Identifier 1
16062 , p_source_24 IN NUMBER
16063 --Applied To Header Identifier 1
16064 , p_source_25 IN NUMBER
16065 --Entered Amount
16066 , p_source_26 IN NUMBER
16067 --Currency Code
16068 , p_source_27 IN VARCHAR2
16069 --Accounted Amount
16070 , p_source_28 IN NUMBER
16071 --PO Encumbrance Upgrade Option
16072 , p_source_29 IN VARCHAR2
16073 --JFMIP Reference
16074 , p_source_31 IN VARCHAR2
16075 --PO Upgrade Encumbrance Type Identifier
16076 , p_source_32 IN NUMBER
16077 --Allocated to Main Document Distribution Type
16078 , p_source_33 IN VARCHAR2
16079 --Allocated to Main Document Distribution Identifier
16080 , p_source_34 IN NUMBER
16081 )
16082 IS
16083
16084 l_component_type VARCHAR2(80);
16085 l_component_code VARCHAR2(30);
16086 l_component_type_code VARCHAR2(1);
16087 l_component_appl_id INTEGER;
16088 l_amb_context_code VARCHAR2(30);
16089 l_entity_code VARCHAR2(30);
16090 l_event_class_code VARCHAR2(30);
16091 l_ae_header_id NUMBER;
16092 l_event_type_code VARCHAR2(30);
16093 l_line_definition_code VARCHAR2(30);
16094 l_line_definition_owner_code VARCHAR2(1);
16095 --
16096 -- adr variables
16097 l_segment VARCHAR2(30);
16098 l_ccid NUMBER;
16099 l_adr_transaction_coa_id NUMBER;
16100 l_adr_accounting_coa_id NUMBER;
16101 l_adr_flexfield_segment_code VARCHAR2(30);
16102 l_adr_flex_value_set_id NUMBER;
16103 l_adr_value_type_code VARCHAR2(30);
16104 l_adr_value_combination_id NUMBER;
16105 l_adr_value_segment_code VARCHAR2(30);
16106
16107 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16108 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16109 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16110 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16111
16112 -- 4262811 Variables ------------------------------------------------------------------------------------------
16113 l_entered_amt_idx NUMBER;
16114 l_accted_amt_idx NUMBER;
16115 l_acc_rev_flag VARCHAR2(1);
16116 l_accrual_line_num NUMBER;
16117 l_tmp_amt NUMBER;
16118 l_acc_rev_natural_side_code VARCHAR2(1);
16119
16120 l_num_entries NUMBER;
16121 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16122 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16123 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16124 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16125 l_recog_line_1 NUMBER;
16126 l_recog_line_2 NUMBER;
16127
16128 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16129 l_bflow_applied_to_amt NUMBER; -- 5132302
16130 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16131
16132 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16133
16134 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16135 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16136
16137 ---------------------------------------------------------------------------------------------------------------
16138
16139
16140 --
16141 -- bulk performance
16142 --
16143 l_balance_type_code VARCHAR2(1);
16144 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16145 l_log_module VARCHAR2(240);
16146
16147 --
16148 -- Upgrade strategy
16149 --
16150 l_actual_upg_option VARCHAR2(1);
16151 l_enc_upg_option VARCHAR2(1);
16152
16153 --
16154 BEGIN
16155 --
16156 IF g_log_enabled THEN
16157 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_36';
16158 END IF;
16159 --
16160 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16161
16162 trace
16163 (p_msg => 'BEGIN of AcctLineType_36'
16164 ,p_level => C_LEVEL_PROCEDURE
16165 ,p_module => l_log_module);
16166
16167 END IF;
16168 --
16169 l_component_type := 'AMB_JLT';
16170 l_component_code := 'FV_PO_REINSTATE_REQ_DR';
16171 l_component_type_code := 'S';
16172 l_component_appl_id := 201;
16173 l_amb_context_code := 'DEFAULT';
16174 l_entity_code := 'PURCHASE_ORDER';
16175 l_event_class_code := 'PO_PA';
16176 l_event_type_code := 'PO_PA_ALL';
16177 l_line_definition_owner_code := 'S';
16178 l_line_definition_code := 'FV_PO_ALL';
16179 --
16180 l_balance_type_code := 'A';
16181 l_segment := NULL;
16182 l_ccid := NULL;
16183 l_adr_transaction_coa_id := NULL;
16184 l_adr_accounting_coa_id := NULL;
16185 l_adr_flexfield_segment_code := NULL;
16186 l_adr_flex_value_set_id := NULL;
16187 l_adr_value_type_code := NULL;
16188 l_adr_value_combination_id := NULL;
16189 l_adr_value_segment_code := NULL;
16190
16191 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
16192 l_bflow_class_code := 'FV_REQ_CR'; -- 4219869 Business Flow
16193 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
16194 l_budgetary_control_flag := 'Y';
16195
16196 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16197 l_bflow_applied_to_amt := NULL; -- 5132302
16198 l_entered_amt_idx := NULL; -- 4262811
16199 l_accted_amt_idx := NULL; -- 4262811
16200 l_acc_rev_flag := NULL; -- 4262811
16201 l_accrual_line_num := NULL; -- 4262811
16202 l_tmp_amt := NULL; -- 4262811
16203 --
16204
16205 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16206 l_balance_type_code <> 'B' THEN
16207 IF (NVL(
16208 xla_ae_sources_pkg.GetSystemSourceChar(
16209 p_source_code => 'XLA_EVENT_TYPE_CODE'
16210 , p_source_type_code => 'Y'
16211 , p_source_application_id => 602
16212 ),'
16213 ') = 'PO_PA_UNRESERVED' OR
16214 NVL(
16215 xla_ae_sources_pkg.GetSystemSourceChar(
16216 p_source_code => 'XLA_EVENT_TYPE_CODE'
16217 , p_source_type_code => 'Y'
16218 , p_source_application_id => 602
16219 ),'
16220 ') = 'PO_PA_INV_CANCELLED' OR
16221 NVL(
16222 xla_ae_sources_pkg.GetSystemSourceChar(
16223 p_source_code => 'XLA_EVENT_TYPE_CODE'
16224 , p_source_type_code => 'Y'
16225 , p_source_application_id => 602
16226 ),'
16227 ') = 'PO_PA_REJECTED') AND
16228 NVL(p_source_13,'
16229 ') = 'B_REQ'
16230 THEN
16231
16232 --
16233 XLA_AE_LINES_PKG.SetNewLine;
16234
16235 p_balance_type_code := l_balance_type_code;
16236 -- set the flag so later we will know whether the gain loss line needs to be created
16237
16238 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16239 p_actual_flag :='A';
16240 END IF;
16241
16242 --
16243 -- bulk performance
16244 --
16245 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16246 p_header_num => 0); -- 4262811
16247 --
16248 -- set accounting line options
16249 --
16250 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16251 p_natural_side_code => 'D'
16252 , p_gain_or_loss_flag => 'N'
16253 , p_gl_transfer_mode_code => 'S'
16254 , p_acct_entry_type_code => 'A'
16255 , p_switch_side_flag => 'N'
16256 , p_merge_duplicate_code => 'N'
16257 );
16258 --
16259 l_acc_rev_natural_side_code := 'C'; -- 4262811
16260 --
16261 --
16262 -- set accounting line type info
16263 --
16264 xla_ae_lines_pkg.SetAcctLineType
16265 (p_component_type => l_component_type
16266 ,p_event_type_code => l_event_type_code
16267 ,p_line_definition_owner_code => l_line_definition_owner_code
16268 ,p_line_definition_code => l_line_definition_code
16269 ,p_accounting_line_code => l_component_code
16270 ,p_accounting_line_type_code => l_component_type_code
16271 ,p_accounting_line_appl_id => l_component_appl_id
16272 ,p_amb_context_code => l_amb_context_code
16273 ,p_entity_code => l_entity_code
16274 ,p_event_class_code => l_event_class_code);
16275 --
16276 -- set accounting class
16277 --
16278 xla_ae_lines_pkg.SetAcctClass(
16279 p_accounting_class_code => 'REQUISITION'
16280 , p_ae_header_id => l_ae_header_id
16281 );
16282
16283 --
16284 -- set rounding class
16285 --
16286 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16287 'REQUISITION';
16288
16289 --
16290 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16291 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16292 --
16293 -- bulk performance
16294 --
16295 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16296
16297 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16298 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16299
16300 -- 4955764
16301 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16302 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16303
16304 -- 4458381 Public Sector Enh
16305
16306 --
16307 -- set accounting attributes for the line type
16308 --
16309 l_entered_amt_idx := 23;
16310 l_accted_amt_idx := 25;
16311 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16312 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16313 l_rec_acct_attrs.array_char_value(1) := p_source_15;
16314 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16315 l_rec_acct_attrs.array_num_value(2) :=
16316 xla_ae_sources_pkg.GetSystemSourceNum(
16317 p_source_code => 'XLA_EVENT_APPL_ID'
16318 , p_source_type_code => 'Y'
16319 , p_source_application_id => 602
16320 );
16321 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16322 l_rec_acct_attrs.array_char_value(3) := p_source_33;
16323 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16324 l_rec_acct_attrs.array_char_value(4) :=
16325 xla_ae_sources_pkg.GetSystemSourceChar(
16326 p_source_code => 'XLA_ENTITY_CODE'
16327 , p_source_type_code => 'Y'
16328 , p_source_application_id => 602
16329 );
16330 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16331 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
16332 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16333 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
16334 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
16335 l_rec_acct_attrs.array_num_value(7) := p_source_21;
16336 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16337 l_rec_acct_attrs.array_char_value(8) := p_source_22;
16338 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
16339 l_rec_acct_attrs.array_char_value(9) := p_source_23;
16340 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
16341 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
16342 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16343 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
16344 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
16345 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
16346 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
16347 l_rec_acct_attrs.array_char_value(13) := p_source_17;
16348 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
16349 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
16350 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
16351 l_rec_acct_attrs.array_num_value(15) := p_source_26;
16352 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
16353 l_rec_acct_attrs.array_char_value(16) := p_source_27;
16354 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
16355 l_rec_acct_attrs.array_num_value(17) := p_source_28;
16356 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
16357 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
16358 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
16359 l_rec_acct_attrs.array_num_value(19) := p_source_26;
16360 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
16361 l_rec_acct_attrs.array_char_value(20) := p_source_27;
16362 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
16363 l_rec_acct_attrs.array_num_value(21) := p_source_28;
16364 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
16365 l_rec_acct_attrs.array_char_value(22) := p_source_29;
16366 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
16367 l_rec_acct_attrs.array_num_value(23) := p_source_26;
16368 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
16369 l_rec_acct_attrs.array_char_value(24) := p_source_27;
16370 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
16371 l_rec_acct_attrs.array_num_value(25) := p_source_28;
16372 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
16373 l_rec_acct_attrs.array_char_value(26) := p_source_31;
16374 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
16375 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
16376 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
16377 l_rec_acct_attrs.array_char_value(28) := p_source_22;
16378 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
16379 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
16380 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
16381 l_rec_acct_attrs.array_num_value(30) := p_source_32;
16382 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
16383 l_rec_acct_attrs.array_num_value(31) := p_source_32;
16384
16385 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16386 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16387
16388 ---------------------------------------------------------------------------------------------------------------
16389 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16390 ---------------------------------------------------------------------------------------------------------------
16391 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16392
16393 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16394 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16395
16396 IF xla_accounting_cache_pkg.GetValueChar
16397 (p_source_code => 'LEDGER_CATEGORY_CODE'
16398 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16399 AND l_bflow_method_code = 'PRIOR_ENTRY'
16400 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16401 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16402 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16403 )
16404 THEN
16405 xla_ae_lines_pkg.BflowUpgEntry
16406 (p_business_method_code => l_bflow_method_code
16407 ,p_business_class_code => l_bflow_class_code
16408 ,p_balance_type => l_balance_type_code);
16409 ELSE
16410 NULL;
16411 XLA_AE_LINES_PKG.business_flow_validation(
16412 p_business_method_code => l_bflow_method_code
16413 ,p_business_class_code => l_bflow_class_code
16414 ,p_inherit_description_flag => l_inherit_desc_flag);
16415 END IF;
16416
16417 --
16418 -- call analytical criteria
16419 --
16420 -- Inherited Analytical Criteria for business flow method of Prior Entry.
16421 --
16422 -- call description
16423 --
16424 -- No description or it is inherited.
16425 --
16426 -- call ADRs
16427 -- Bug 4922099
16428 --
16429 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16430 (NVL(l_actual_upg_option, 'N') = 'O') OR
16431 (NVL(l_enc_upg_option, 'N') = 'O')
16432 )
16433 THEN
16434 NULL;
16435 --
16436 --
16437
16438 --
16439 --
16440 END IF;
16441 --
16442 -- Bug 4922099
16443 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16444 (NVL(l_enc_upg_option, 'N') = 'O')
16445 ) AND
16446 (l_bflow_method_code = 'PRIOR_ENTRY')
16447 )
16448 THEN
16449 IF
16450 --
16451 1 = 1
16452 --
16453 THEN
16454 xla_accounting_err_pkg.build_message
16455 (p_appli_s_name => 'XLA'
16456 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16457 ,p_token_1 => 'LINE_NUMBER'
16458 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16459 ,p_token_2 => 'LINE_TYPE_NAME'
16460 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16461 l_component_type
16462 ,l_component_code
16463 ,l_component_type_code
16464 ,l_component_appl_id
16465 ,l_amb_context_code
16466 ,l_entity_code
16467 ,l_event_class_code
16468 )
16469 ,p_token_3 => 'OWNER'
16470 ,p_value_3 => xla_lookups_pkg.get_meaning(
16471 p_lookup_type => 'XLA_OWNER_TYPE'
16472 ,p_lookup_code => l_component_type_code
16473 )
16474 ,p_token_4 => 'PRODUCT_NAME'
16475 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16476 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16477 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16478 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16479 ,p_ae_header_id => NULL
16480 );
16481
16482 IF (C_LEVEL_ERROR>= g_log_level) THEN
16483 trace
16484 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16485 ,p_level => C_LEVEL_ERROR
16486 ,p_module => l_log_module);
16487 END IF;
16488 END IF;
16489 END IF;
16490 --
16491 --
16492 ------------------------------------------------------------------------------------------------
16493 -- 4219869 Business Flow
16494 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16495 -- Prior Entry. Currently, the following code is always generated.
16496 ------------------------------------------------------------------------------------------------
16497 -- No ValidateCurrentLine for business flow method of Prior Entry
16498
16499 ------------------------------------------------------------------------------------
16500 -- 4219869 Business Flow
16501 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16502 ------------------------------------------------------------------------------------
16503 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16504
16505 ----------------------------------------------------------------------------------
16506 -- 4219869 Business Flow
16507 -- Update journal entry status -- Need to generate this within IF <condition>
16508 ----------------------------------------------------------------------------------
16509 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16510 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16511 ,p_balance_type_code => l_balance_type_code
16512 );
16513
16514 -------------------------------------------------------------------------------------------
16515 -- 4262811 - Generate the Accrual Reversal lines
16516 -------------------------------------------------------------------------------------------
16517 BEGIN
16518 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16519 (g_array_event(p_event_id).array_value_num('header_index'));
16520 IF l_acc_rev_flag IS NULL THEN
16521 l_acc_rev_flag := 'N';
16522 END IF;
16523 EXCEPTION
16524 WHEN OTHERS THEN
16525 l_acc_rev_flag := 'N';
16526 END;
16527 --
16528 IF (l_acc_rev_flag = 'Y') THEN
16529
16530 -- 4645092 ------------------------------------------------------------------------------
16531 -- To allow MPA report to determine if it should generate report process
16532 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16533 ------------------------------------------------------------------------------------------
16534
16535 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16536 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16537
16538 --
16539 -- Update the line information that should be overwritten
16540 --
16541 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16542 p_header_num => 1);
16543 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16544
16545 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16546
16547 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16548 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16549 END IF;
16550
16551 --
16552 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16553 --
16554 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16555 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16556 ELSE
16557 ---------------------------------------------------------------------------------------------------
16558 -- 4262811a Switch Sign
16559 ---------------------------------------------------------------------------------------------------
16560 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16561 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16562 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16563 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16564 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16565 -- 5132302
16566 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16567 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16568
16569 END IF;
16570
16571 -- 4955764
16572 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16573 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16574
16575
16576 XLA_AE_LINES_PKG.ValidateCurrentLine;
16577 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16578
16579 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16580 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16581 ,p_balance_type_code => l_balance_type_code);
16582
16583 END IF;
16584
16585 -----------------------------------------------------------------------------------------
16586 -- 4262811 Multiperiod Accounting
16587 -----------------------------------------------------------------------------------------
16588 -- No MPA option is assigned.
16589
16590
16591 END IF;
16592 END IF;
16593 --
16594
16595 --
16596 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16597 trace
16598 (p_msg => 'END of AcctLineType_36'
16599 ,p_level => C_LEVEL_PROCEDURE
16600 ,p_module => l_log_module);
16601 END IF;
16602 --
16603 EXCEPTION
16604 WHEN xla_exceptions_pkg.application_exception THEN
16605 RAISE;
16606 WHEN OTHERS THEN
16607 xla_exceptions_pkg.raise_message
16608 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_36');
16609 END AcctLineType_36;
16610 --
16611
16612 ---------------------------------------
16613 --
16614 -- PRIVATE FUNCTION
16615 -- AcctLineType_37
16616 --
16617 ---------------------------------------
16618 PROCEDURE AcctLineType_37 (
16619 p_application_id IN NUMBER
16620 ,p_event_id IN NUMBER
16621 ,p_calculate_acctd_flag IN VARCHAR2
16622 ,p_calculate_g_l_flag IN VARCHAR2
16623 ,p_actual_flag IN OUT VARCHAR2
16624 ,p_balance_type_code OUT VARCHAR2
16625 ,p_gain_or_loss_ref OUT VARCHAR2
16626
16627 --Journal entry Line Description
16628 , p_source_3 IN VARCHAR2
16629 --Budget Account
16630 , p_source_9 IN NUMBER
16631 --Federal Prior Year Flag
16632 , p_source_10 IN VARCHAR2
16633 --Main Or Backing Code
16634 , p_source_13 IN VARCHAR2
16635 --PO Distribution Type
16636 , p_source_14 IN VARCHAR2
16637 --Accounting Reversal Flag
16638 , p_source_15 IN VARCHAR2
16639 --Distribution Link Type
16640 , p_source_17 IN VARCHAR2
16641 --PO Distribution Identifier
16642 , p_source_19 IN NUMBER
16643 --PO Header Identifier
16644 , p_source_20 IN NUMBER
16645 --Applied To Application Identifier
16646 , p_source_21 IN NUMBER
16647 --Applied To Distribution Link Type
16648 , p_source_22 IN VARCHAR2
16649 --Applied To Entity Code
16650 , p_source_23 IN VARCHAR2
16651 --Applied To Distribution Identifier 1
16652 , p_source_24 IN NUMBER
16653 --Applied To Header Identifier 1
16654 , p_source_25 IN NUMBER
16655 --Entered Amount
16656 , p_source_26 IN NUMBER
16657 --Currency Code
16658 , p_source_27 IN VARCHAR2
16659 --Accounted Amount
16660 , p_source_28 IN NUMBER
16661 --PO Encumbrance Upgrade Option
16665 --PO Upgrade Encumbrance Type Identifier
16662 , p_source_29 IN VARCHAR2
16663 --JFMIP Reference
16664 , p_source_31 IN VARCHAR2
16666 , p_source_32 IN NUMBER
16667 --Currency Conversion Date
16668 , p_source_35 IN DATE
16669 --Currency Conversion Rate
16670 , p_source_36 IN NUMBER
16671 --Currency Conversion Type
16672 , p_source_37 IN VARCHAR2
16673 )
16674 IS
16675
16676 l_component_type VARCHAR2(80);
16677 l_component_code VARCHAR2(30);
16678 l_component_type_code VARCHAR2(1);
16679 l_component_appl_id INTEGER;
16680 l_amb_context_code VARCHAR2(30);
16681 l_entity_code VARCHAR2(30);
16682 l_event_class_code VARCHAR2(30);
16683 l_ae_header_id NUMBER;
16684 l_event_type_code VARCHAR2(30);
16685 l_line_definition_code VARCHAR2(30);
16686 l_line_definition_owner_code VARCHAR2(1);
16687 --
16688 -- adr variables
16689 l_segment VARCHAR2(30);
16690 l_ccid NUMBER;
16691 l_adr_transaction_coa_id NUMBER;
16692 l_adr_accounting_coa_id NUMBER;
16693 l_adr_flexfield_segment_code VARCHAR2(30);
16694 l_adr_flex_value_set_id NUMBER;
16695 l_adr_value_type_code VARCHAR2(30);
16696 l_adr_value_combination_id NUMBER;
16697 l_adr_value_segment_code VARCHAR2(30);
16698
16699 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16700 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16701 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16702 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16703
16704 -- 4262811 Variables ------------------------------------------------------------------------------------------
16705 l_entered_amt_idx NUMBER;
16706 l_accted_amt_idx NUMBER;
16707 l_acc_rev_flag VARCHAR2(1);
16708 l_accrual_line_num NUMBER;
16709 l_tmp_amt NUMBER;
16710 l_acc_rev_natural_side_code VARCHAR2(1);
16711
16712 l_num_entries NUMBER;
16713 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16714 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16715 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16716 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16717 l_recog_line_1 NUMBER;
16718 l_recog_line_2 NUMBER;
16719
16720 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16721 l_bflow_applied_to_amt NUMBER; -- 5132302
16722 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16723
16724 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16725
16726 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16727 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16728
16729 ---------------------------------------------------------------------------------------------------------------
16730
16731
16732 --
16733 -- bulk performance
16734 --
16735 l_balance_type_code VARCHAR2(1);
16736 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16737 l_log_module VARCHAR2(240);
16738
16739 --
16740 -- Upgrade strategy
16741 --
16742 l_actual_upg_option VARCHAR2(1);
16743 l_enc_upg_option VARCHAR2(1);
16744
16745 --
16746 BEGIN
16747 --
16748 IF g_log_enabled THEN
16749 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_37';
16750 END IF;
16751 --
16752 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16753
16754 trace
16755 (p_msg => 'BEGIN of AcctLineType_37'
16756 ,p_level => C_LEVEL_PROCEDURE
16757 ,p_module => l_log_module);
16758
16759 END IF;
16760 --
16761 l_component_type := 'AMB_JLT';
16762 l_component_code := 'FV_PO_REVERSE_CR';
16763 l_component_type_code := 'S';
16764 l_component_appl_id := 201;
16765 l_amb_context_code := 'DEFAULT';
16766 l_entity_code := 'PURCHASE_ORDER';
16767 l_event_class_code := 'PO_PA';
16768 l_event_type_code := 'PO_PA_ALL';
16769 l_line_definition_owner_code := 'S';
16770 l_line_definition_code := 'FV_PO_ALL';
16771 --
16772 l_balance_type_code := 'A';
16773 l_segment := NULL;
16774 l_ccid := NULL;
16775 l_adr_transaction_coa_id := NULL;
16776 l_adr_accounting_coa_id := NULL;
16777 l_adr_flexfield_segment_code := NULL;
16778 l_adr_flex_value_set_id := NULL;
16779 l_adr_value_type_code := NULL;
16780 l_adr_value_combination_id := NULL;
16781 l_adr_value_segment_code := NULL;
16782
16783 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
16784 l_bflow_class_code := ''; -- 4219869 Business Flow
16785 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16786 l_budgetary_control_flag := 'Y';
16787
16788 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16789 l_bflow_applied_to_amt := NULL; -- 5132302
16790 l_entered_amt_idx := NULL; -- 4262811
16791 l_accted_amt_idx := NULL; -- 4262811
16792 l_acc_rev_flag := NULL; -- 4262811
16793 l_accrual_line_num := NULL; -- 4262811
16794 l_tmp_amt := NULL; -- 4262811
16795 --
16796
16797 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16798 l_balance_type_code <> 'B' THEN
16799 IF (NVL(
16800 xla_ae_sources_pkg.GetSystemSourceChar(
16801 p_source_code => 'XLA_EVENT_TYPE_CODE'
16802 , p_source_type_code => 'Y'
16803 , p_source_application_id => 602
16804 ),'
16805 ') = 'PO_PA_CANCELLED' OR
16806 NVL(
16807 xla_ae_sources_pkg.GetSystemSourceChar(
16808 p_source_code => 'XLA_EVENT_TYPE_CODE'
16809 , p_source_type_code => 'Y'
16810 , p_source_application_id => 602
16811 ),'
16812 ') = 'PO_PA_CR_MEMO_CANCELLED') AND
16813 NVL(p_source_13,'
16814 ') = 'M' AND
16815 (NVL(p_source_14,'
16816 ') <> 'AGREEMENT' OR
16817 p_source_14 IS NULL ) AND
16818 NVL(p_source_10,'
16819 ') = 'N'
16820 THEN
16821
16822 --
16823 XLA_AE_LINES_PKG.SetNewLine;
16824
16825 p_balance_type_code := l_balance_type_code;
16826 -- set the flag so later we will know whether the gain loss line needs to be created
16827
16828 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16829 p_actual_flag :='A';
16830 END IF;
16831
16832 --
16833 -- bulk performance
16834 --
16835 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16836 p_header_num => 0); -- 4262811
16837 --
16838 -- set accounting line options
16839 --
16840 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16841 p_natural_side_code => 'C'
16842 , p_gain_or_loss_flag => 'N'
16843 , p_gl_transfer_mode_code => 'S'
16844 , p_acct_entry_type_code => 'A'
16845 , p_switch_side_flag => 'Y'
16846 , p_merge_duplicate_code => 'N'
16847 );
16848 --
16849 l_acc_rev_natural_side_code := 'D'; -- 4262811
16850 --
16851 --
16852 -- set accounting line type info
16853 --
16854 xla_ae_lines_pkg.SetAcctLineType
16855 (p_component_type => l_component_type
16856 ,p_event_type_code => l_event_type_code
16857 ,p_line_definition_owner_code => l_line_definition_owner_code
16858 ,p_line_definition_code => l_line_definition_code
16859 ,p_accounting_line_code => l_component_code
16860 ,p_accounting_line_type_code => l_component_type_code
16861 ,p_accounting_line_appl_id => l_component_appl_id
16862 ,p_amb_context_code => l_amb_context_code
16863 ,p_entity_code => l_entity_code
16864 ,p_event_class_code => l_event_class_code);
16865 --
16866 -- set accounting class
16867 --
16868 xla_ae_lines_pkg.SetAcctClass(
16869 p_accounting_class_code => 'PURCHASE_ORDER'
16873 --
16870 , p_ae_header_id => l_ae_header_id
16871 );
16872
16874 -- set rounding class
16875 --
16876 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16877 'PURCHASE_ORDER';
16878
16879 --
16880 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16881 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16882 --
16883 -- bulk performance
16884 --
16885 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16886
16887 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16888 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16889
16890 -- 4955764
16891 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16892 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16893
16894 -- 4458381 Public Sector Enh
16895
16896 --
16897 -- set accounting attributes for the line type
16898 --
16899 l_entered_amt_idx := 23;
16900 l_accted_amt_idx := 28;
16901 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16902 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16903 l_rec_acct_attrs.array_char_value(1) := p_source_15;
16904 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16905 l_rec_acct_attrs.array_num_value(2) :=
16906 xla_ae_sources_pkg.GetSystemSourceNum(
16907 p_source_code => 'XLA_EVENT_APPL_ID'
16908 , p_source_type_code => 'Y'
16909 , p_source_application_id => 602
16910 );
16911 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16912 l_rec_acct_attrs.array_char_value(3) := p_source_17;
16913 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16914 l_rec_acct_attrs.array_char_value(4) :=
16915 xla_ae_sources_pkg.GetSystemSourceChar(
16916 p_source_code => 'XLA_ENTITY_CODE'
16917 , p_source_type_code => 'Y'
16918 , p_source_application_id => 602
16919 );
16920 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16921 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
16922 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16923 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
16924 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
16925 l_rec_acct_attrs.array_num_value(7) := p_source_21;
16926 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16927 l_rec_acct_attrs.array_char_value(8) := p_source_22;
16928 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
16929 l_rec_acct_attrs.array_char_value(9) := p_source_23;
16930 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
16931 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
16932 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16933 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
16934 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
16935 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
16936 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
16937 l_rec_acct_attrs.array_char_value(13) := p_source_17;
16938 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
16939 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
16940 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
16941 l_rec_acct_attrs.array_num_value(15) := p_source_26;
16942 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
16943 l_rec_acct_attrs.array_char_value(16) := p_source_27;
16944 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
16945 l_rec_acct_attrs.array_num_value(17) := p_source_28;
16946 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
16947 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
16948 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
16949 l_rec_acct_attrs.array_num_value(19) := p_source_26;
16950 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
16951 l_rec_acct_attrs.array_char_value(20) := p_source_27;
16952 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
16953 l_rec_acct_attrs.array_num_value(21) := p_source_28;
16954 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
16955 l_rec_acct_attrs.array_char_value(22) := p_source_29;
16956 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
16957 l_rec_acct_attrs.array_num_value(23) := p_source_26;
16958 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
16959 l_rec_acct_attrs.array_char_value(24) := p_source_27;
16960 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
16961 l_rec_acct_attrs.array_date_value(25) := p_source_35;
16962 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
16963 l_rec_acct_attrs.array_num_value(26) := p_source_36;
16964 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
16965 l_rec_acct_attrs.array_char_value(27) := p_source_37;
16966 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
16967 l_rec_acct_attrs.array_num_value(28) := p_source_28;
16968 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
16969 l_rec_acct_attrs.array_char_value(29) := p_source_31;
16970 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
16971 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
16972 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
16976 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
16973 l_rec_acct_attrs.array_char_value(31) := p_source_22;
16974 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
16975 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
16977 l_rec_acct_attrs.array_num_value(33) := p_source_32;
16978 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
16979 l_rec_acct_attrs.array_num_value(34) := p_source_32;
16980
16981 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16982 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16983
16984 ---------------------------------------------------------------------------------------------------------------
16985 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16986 ---------------------------------------------------------------------------------------------------------------
16987 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16988
16989 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16990 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16991
16992 IF xla_accounting_cache_pkg.GetValueChar
16993 (p_source_code => 'LEDGER_CATEGORY_CODE'
16994 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16995 AND l_bflow_method_code = 'PRIOR_ENTRY'
16996 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16997 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16998 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16999 )
17000 THEN
17001 xla_ae_lines_pkg.BflowUpgEntry
17002 (p_business_method_code => l_bflow_method_code
17003 ,p_business_class_code => l_bflow_class_code
17004 ,p_balance_type => l_balance_type_code);
17005 ELSE
17006 NULL;
17007 -- No business flow processing for business flow method of NONE.
17008 END IF;
17009
17010 --
17011 -- call analytical criteria
17012 --
17013
17014 --
17015 -- call description
17016 --
17017
17018 xla_ae_lines_pkg.SetLineDescription(
17019 p_ae_header_id => l_ae_header_id
17020 ,p_description => Description_2 (
17021 p_application_id => p_application_id
17022 , p_ae_header_id => l_ae_header_id
17023 , p_source_3 => p_source_3
17024 )
17025 );
17026
17027
17028 --
17029 -- call ADRs
17030 -- Bug 4922099
17031 --
17032 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17033 (NVL(l_actual_upg_option, 'N') = 'O') OR
17034 (NVL(l_enc_upg_option, 'N') = 'O')
17035 )
17036 THEN
17037 NULL;
17038 --
17039 --
17040
17041 l_ccid := AcctDerRule_9(
17042 p_application_id => p_application_id
17043 , p_ae_header_id => l_ae_header_id
17044 , p_source_9 => p_source_9
17045 , x_transaction_coa_id => l_adr_transaction_coa_id
17046 , x_accounting_coa_id => l_adr_accounting_coa_id
17047 , x_value_type_code => l_adr_value_type_code
17048 , p_side => 'NA'
17049 );
17050
17051 xla_ae_lines_pkg.set_ccid(
17052 p_code_combination_id => l_ccid
17053 , p_value_type_code => l_adr_value_type_code
17054 , p_transaction_coa_id => l_adr_transaction_coa_id
17055 , p_accounting_coa_id => l_adr_accounting_coa_id
17056 , p_adr_code => 'FV_ACCOUNT_RULE'
17057 , p_adr_type_code => 'S'
17058 , p_component_type => l_component_type
17059 , p_component_code => l_component_code
17060 , p_component_type_code => l_component_type_code
17061 , p_component_appl_id => l_component_appl_id
17062 , p_amb_context_code => l_amb_context_code
17063 , p_side => 'NA'
17064 );
17065
17066
17067 l_segment := AcctDerRule_8(
17068 p_application_id => p_application_id
17069 , p_ae_header_id => l_ae_header_id
17070 , x_transaction_coa_id => l_adr_transaction_coa_id
17071 , x_accounting_coa_id => l_adr_accounting_coa_id
17072 , x_flexfield_segment_code => l_adr_flexfield_segment_code
17073 , x_flex_value_set_id => l_adr_flex_value_set_id
17074 , x_value_type_code => l_adr_value_type_code
17075 , x_value_combination_id => l_adr_value_combination_id
17076 , x_value_segment_code => l_adr_value_segment_code
17077 , p_side => 'NA'
17078 , p_override_seg_flag => 'Y'
17079 );
17080
17081 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
17082
17083 xla_ae_lines_pkg.set_segment(
17084 p_to_segment_code => 'GL_ACCOUNT'
17085 , p_segment_value => l_segment
17086 , p_from_segment_code => l_adr_value_segment_code
17087 , p_from_combination_id => l_adr_value_combination_id
17088 , p_value_type_code => l_adr_value_type_code
17089 , p_transaction_coa_id => l_adr_transaction_coa_id
17090 , p_accounting_coa_id => l_adr_accounting_coa_id
17091 , p_flexfield_segment_code => l_adr_flexfield_segment_code
17092 , p_flex_value_set_id => l_adr_flex_value_set_id
17093 , p_adr_code => 'FV_48X101_PURCHASING'
17094 , p_adr_type_code => 'S'
17095 , p_component_type => l_component_type
17096 , p_component_code => l_component_code
17097 , p_component_type_code => l_component_type_code
17098 , p_component_appl_id => l_component_appl_id
17099 , p_amb_context_code => l_amb_context_code
17100 , p_entity_code => 'PURCHASE_ORDER'
17101 , p_event_class_code => 'PO_PA'
17102 , p_side => 'NA'
17103 );
17104
17105 END IF;
17106
17107 --
17108 --
17109 END IF;
17110 --
17111 -- Bug 4922099
17112 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17113 (NVL(l_enc_upg_option, 'N') = 'O')
17114 ) AND
17115 (l_bflow_method_code = 'PRIOR_ENTRY')
17116 )
17117 THEN
17118 IF
17119 --
17120 1 = 2
17121 --
17122 THEN
17123 xla_accounting_err_pkg.build_message
17124 (p_appli_s_name => 'XLA'
17125 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17126 ,p_token_1 => 'LINE_NUMBER'
17127 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17128 ,p_token_2 => 'LINE_TYPE_NAME'
17129 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17130 l_component_type
17131 ,l_component_code
17132 ,l_component_type_code
17133 ,l_component_appl_id
17134 ,l_amb_context_code
17135 ,l_entity_code
17136 ,l_event_class_code
17137 )
17138 ,p_token_3 => 'OWNER'
17139 ,p_value_3 => xla_lookups_pkg.get_meaning(
17140 p_lookup_type => 'XLA_OWNER_TYPE'
17141 ,p_lookup_code => l_component_type_code
17142 )
17143 ,p_token_4 => 'PRODUCT_NAME'
17144 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17148 ,p_ae_header_id => NULL
17145 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17146 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17147 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17149 );
17150
17151 IF (C_LEVEL_ERROR>= g_log_level) THEN
17152 trace
17153 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17154 ,p_level => C_LEVEL_ERROR
17155 ,p_module => l_log_module);
17156 END IF;
17157 END IF;
17158 END IF;
17159 --
17160 --
17161 ------------------------------------------------------------------------------------------------
17162 -- 4219869 Business Flow
17163 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17164 -- Prior Entry. Currently, the following code is always generated.
17165 ------------------------------------------------------------------------------------------------
17166 XLA_AE_LINES_PKG.ValidateCurrentLine;
17167
17168 ------------------------------------------------------------------------------------
17169 -- 4219869 Business Flow
17170 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17171 ------------------------------------------------------------------------------------
17172 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17173
17174 ----------------------------------------------------------------------------------
17175 -- 4219869 Business Flow
17176 -- Update journal entry status -- Need to generate this within IF <condition>
17177 ----------------------------------------------------------------------------------
17178 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17179 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17180 ,p_balance_type_code => l_balance_type_code
17181 );
17182
17183 -------------------------------------------------------------------------------------------
17184 -- 4262811 - Generate the Accrual Reversal lines
17185 -------------------------------------------------------------------------------------------
17186 BEGIN
17187 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17188 (g_array_event(p_event_id).array_value_num('header_index'));
17189 IF l_acc_rev_flag IS NULL THEN
17190 l_acc_rev_flag := 'N';
17191 END IF;
17192 EXCEPTION
17193 WHEN OTHERS THEN
17194 l_acc_rev_flag := 'N';
17195 END;
17196 --
17197 IF (l_acc_rev_flag = 'Y') THEN
17198
17199 -- 4645092 ------------------------------------------------------------------------------
17200 -- To allow MPA report to determine if it should generate report process
17201 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17202 ------------------------------------------------------------------------------------------
17203
17204 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17205 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17206
17207 --
17208 -- Update the line information that should be overwritten
17209 --
17210 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17211 p_header_num => 1);
17212 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17213
17214 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17215
17216 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17217 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17218 END IF;
17219
17220 --
17221 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17222 --
17223 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17224 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17225 ELSE
17226 ---------------------------------------------------------------------------------------------------
17227 -- 4262811a Switch Sign
17228 ---------------------------------------------------------------------------------------------------
17229 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17230 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17231 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17232 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17233 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17234 -- 5132302
17235 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17236 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17237
17238 END IF;
17239
17240 -- 4955764
17241 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17242 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17243
17244
17245 XLA_AE_LINES_PKG.ValidateCurrentLine;
17246 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17247
17248 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17249 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17250 ,p_balance_type_code => l_balance_type_code);
17251
17252 END IF;
17253
17254 -----------------------------------------------------------------------------------------
17255 -- 4262811 Multiperiod Accounting
17256 -----------------------------------------------------------------------------------------
17257 -- No MPA option is assigned.
17258
17259
17260 END IF;
17261 END IF;
17262 --
17263
17264 --
17265 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17266 trace
17267 (p_msg => 'END of AcctLineType_37'
17268 ,p_level => C_LEVEL_PROCEDURE
17269 ,p_module => l_log_module);
17270 END IF;
17271 --
17272 EXCEPTION
17273 WHEN xla_exceptions_pkg.application_exception THEN
17274 RAISE;
17275 WHEN OTHERS THEN
17276 xla_exceptions_pkg.raise_message
17277 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_37');
17278 END AcctLineType_37;
17279 --
17280
17281 ---------------------------------------
17282 --
17283 -- PRIVATE FUNCTION
17284 -- AcctLineType_38
17285 --
17286 ---------------------------------------
17287 PROCEDURE AcctLineType_38 (
17288 p_application_id IN NUMBER
17289 ,p_event_id IN NUMBER
17290 ,p_calculate_acctd_flag IN VARCHAR2
17291 ,p_calculate_g_l_flag IN VARCHAR2
17292 ,p_actual_flag IN OUT VARCHAR2
17293 ,p_balance_type_code OUT VARCHAR2
17294 ,p_gain_or_loss_ref OUT VARCHAR2
17295
17296 --Journal entry Line Description
17297 , p_source_3 IN VARCHAR2
17298 --Federal Fund Category
17299 , p_source_7 IN VARCHAR2
17300 --Federal Fund Expired Status
17301 , p_source_8 IN VARCHAR2
17302 --Budget Account
17303 , p_source_9 IN NUMBER
17304 --Federal Prior Year Flag
17305 , p_source_10 IN VARCHAR2
17306 --Main Or Backing Code
17307 , p_source_13 IN VARCHAR2
17308 --PO Distribution Type
17309 , p_source_14 IN VARCHAR2
17310 --Accounting Reversal Flag
17311 , p_source_15 IN VARCHAR2
17312 --Distribution Link Type
17313 , p_source_17 IN VARCHAR2
17314 --PO Distribution Identifier
17315 , p_source_19 IN NUMBER
17316 --PO Header Identifier
17317 , p_source_20 IN NUMBER
17318 --Applied To Application Identifier
17319 , p_source_21 IN NUMBER
17320 --Applied To Distribution Link Type
17321 , p_source_22 IN VARCHAR2
17322 --Applied To Entity Code
17323 , p_source_23 IN VARCHAR2
17324 --Applied To Distribution Identifier 1
17325 , p_source_24 IN NUMBER
17326 --Applied To Header Identifier 1
17327 , p_source_25 IN NUMBER
17328 --Entered Amount
17329 , p_source_26 IN NUMBER
17330 --Currency Code
17331 , p_source_27 IN VARCHAR2
17332 --Accounted Amount
17333 , p_source_28 IN NUMBER
17334 --PO Encumbrance Upgrade Option
17335 , p_source_29 IN VARCHAR2
17336 --JFMIP Reference
17337 , p_source_31 IN VARCHAR2
17338 --PO Upgrade Encumbrance Type Identifier
17339 , p_source_32 IN NUMBER
17340 --Currency Conversion Date
17341 , p_source_35 IN DATE
17342 --Currency Conversion Rate
17343 , p_source_36 IN NUMBER
17344 --Currency Conversion Type
17345 , p_source_37 IN VARCHAR2
17346 )
17347 IS
17348
17349 l_component_type VARCHAR2(80);
17350 l_component_code VARCHAR2(30);
17351 l_component_type_code VARCHAR2(1);
17352 l_component_appl_id INTEGER;
17353 l_amb_context_code VARCHAR2(30);
17354 l_entity_code VARCHAR2(30);
17355 l_event_class_code VARCHAR2(30);
17356 l_ae_header_id NUMBER;
17357 l_event_type_code VARCHAR2(30);
17358 l_line_definition_code VARCHAR2(30);
17359 l_line_definition_owner_code VARCHAR2(1);
17360 --
17361 -- adr variables
17362 l_segment VARCHAR2(30);
17363 l_ccid NUMBER;
17364 l_adr_transaction_coa_id NUMBER;
17365 l_adr_accounting_coa_id NUMBER;
17366 l_adr_flexfield_segment_code VARCHAR2(30);
17367 l_adr_flex_value_set_id NUMBER;
17368 l_adr_value_type_code VARCHAR2(30);
17369 l_adr_value_combination_id NUMBER;
17370 l_adr_value_segment_code VARCHAR2(30);
17371
17372 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17373 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17374 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17375 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17376
17377 -- 4262811 Variables ------------------------------------------------------------------------------------------
17378 l_entered_amt_idx NUMBER;
17379 l_accted_amt_idx NUMBER;
17380 l_acc_rev_flag VARCHAR2(1);
17381 l_accrual_line_num NUMBER;
17382 l_tmp_amt NUMBER;
17383 l_acc_rev_natural_side_code VARCHAR2(1);
17384
17385 l_num_entries NUMBER;
17386 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17387 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17388 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17389 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17390 l_recog_line_1 NUMBER;
17391 l_recog_line_2 NUMBER;
17392
17393 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17394 l_bflow_applied_to_amt NUMBER; -- 5132302
17395 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17396
17397 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17398
17399 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17400 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17401
17402 ---------------------------------------------------------------------------------------------------------------
17403
17404
17405 --
17406 -- bulk performance
17407 --
17408 l_balance_type_code VARCHAR2(1);
17409 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17410 l_log_module VARCHAR2(240);
17411
17412 --
17413 -- Upgrade strategy
17414 --
17415 l_actual_upg_option VARCHAR2(1);
17416 l_enc_upg_option VARCHAR2(1);
17417
17418 --
17419 BEGIN
17420 --
17421 IF g_log_enabled THEN
17422 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_38';
17423 END IF;
17424 --
17425 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17426
17427 trace
17428 (p_msg => 'BEGIN of AcctLineType_38'
17429 ,p_level => C_LEVEL_PROCEDURE
17430 ,p_module => l_log_module);
17431
17432 END IF;
17433 --
17434 l_component_type := 'AMB_JLT';
17435 l_component_code := 'FV_PO_REVERSE_DR';
17436 l_component_type_code := 'S';
17437 l_component_appl_id := 201;
17438 l_amb_context_code := 'DEFAULT';
17439 l_entity_code := 'PURCHASE_ORDER';
17440 l_event_class_code := 'PO_PA';
17441 l_event_type_code := 'PO_PA_ALL';
17442 l_line_definition_owner_code := 'S';
17443 l_line_definition_code := 'FV_PO_ALL';
17444 --
17445 l_balance_type_code := 'A';
17446 l_segment := NULL;
17447 l_ccid := NULL;
17448 l_adr_transaction_coa_id := NULL;
17449 l_adr_accounting_coa_id := NULL;
17450 l_adr_flexfield_segment_code := NULL;
17451 l_adr_flex_value_set_id := NULL;
17452 l_adr_value_type_code := NULL;
17453 l_adr_value_combination_id := NULL;
17454 l_adr_value_segment_code := NULL;
17455
17456 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
17457 l_bflow_class_code := ''; -- 4219869 Business Flow
17458 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17459 l_budgetary_control_flag := 'Y';
17460
17461 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17462 l_bflow_applied_to_amt := NULL; -- 5132302
17463 l_entered_amt_idx := NULL; -- 4262811
17464 l_accted_amt_idx := NULL; -- 4262811
17465 l_acc_rev_flag := NULL; -- 4262811
17466 l_accrual_line_num := NULL; -- 4262811
17467 l_tmp_amt := NULL; -- 4262811
17468 --
17469
17470 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17471 l_balance_type_code <> 'B' THEN
17472 IF (NVL(
17473 xla_ae_sources_pkg.GetSystemSourceChar(
17474 p_source_code => 'XLA_EVENT_TYPE_CODE'
17475 , p_source_type_code => 'Y'
17476 , p_source_application_id => 602
17477 ),'
17478 ') = 'PO_PA_CANCELLED' OR
17479 NVL(
17480 xla_ae_sources_pkg.GetSystemSourceChar(
17481 p_source_code => 'XLA_EVENT_TYPE_CODE'
17482 , p_source_type_code => 'Y'
17483 , p_source_application_id => 602
17484 ),'
17485 ') = 'PO_PA_CR_MEMO_CANCELLED') AND
17486 NVL(p_source_13,'
17487 ') = 'M' AND
17488 (NVL(p_source_14,'
17489 ') <> 'AGREEMENT' OR
17490 p_source_14 IS NULL ) AND
17491 NVL(p_source_10,'
17492 ') = 'N'
17493 THEN
17494
17495 --
17496 XLA_AE_LINES_PKG.SetNewLine;
17497
17498 p_balance_type_code := l_balance_type_code;
17499 -- set the flag so later we will know whether the gain loss line needs to be created
17500
17501 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17502 p_actual_flag :='A';
17503 END IF;
17504
17505 --
17506 -- bulk performance
17507 --
17508 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17509 p_header_num => 0); -- 4262811
17510 --
17511 -- set accounting line options
17512 --
17513 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17514 p_natural_side_code => 'D'
17518 , p_switch_side_flag => 'Y'
17515 , p_gain_or_loss_flag => 'N'
17516 , p_gl_transfer_mode_code => 'S'
17517 , p_acct_entry_type_code => 'A'
17519 , p_merge_duplicate_code => 'N'
17520 );
17521 --
17522 l_acc_rev_natural_side_code := 'C'; -- 4262811
17523 --
17524 --
17525 -- set accounting line type info
17526 --
17527 xla_ae_lines_pkg.SetAcctLineType
17528 (p_component_type => l_component_type
17529 ,p_event_type_code => l_event_type_code
17530 ,p_line_definition_owner_code => l_line_definition_owner_code
17531 ,p_line_definition_code => l_line_definition_code
17532 ,p_accounting_line_code => l_component_code
17533 ,p_accounting_line_type_code => l_component_type_code
17534 ,p_accounting_line_appl_id => l_component_appl_id
17535 ,p_amb_context_code => l_amb_context_code
17536 ,p_entity_code => l_entity_code
17537 ,p_event_class_code => l_event_class_code);
17538 --
17539 -- set accounting class
17540 --
17541 xla_ae_lines_pkg.SetAcctClass(
17542 p_accounting_class_code => 'PURCHASE_ORDER'
17543 , p_ae_header_id => l_ae_header_id
17544 );
17545
17546 --
17547 -- set rounding class
17548 --
17549 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17550 'PURCHASE_ORDER';
17551
17552 --
17553 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17554 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17555 --
17556 -- bulk performance
17557 --
17558 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17559
17560 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17561 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17562
17563 -- 4955764
17564 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17565 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17566
17567 -- 4458381 Public Sector Enh
17568
17569 --
17570 -- set accounting attributes for the line type
17571 --
17572 l_entered_amt_idx := 23;
17573 l_accted_amt_idx := 28;
17574 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17575 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17576 l_rec_acct_attrs.array_char_value(1) := p_source_15;
17577 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
17578 l_rec_acct_attrs.array_num_value(2) :=
17579 xla_ae_sources_pkg.GetSystemSourceNum(
17580 p_source_code => 'XLA_EVENT_APPL_ID'
17581 , p_source_type_code => 'Y'
17582 , p_source_application_id => 602
17583 );
17584 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
17585 l_rec_acct_attrs.array_char_value(3) := p_source_17;
17586 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
17587 l_rec_acct_attrs.array_char_value(4) :=
17588 xla_ae_sources_pkg.GetSystemSourceChar(
17589 p_source_code => 'XLA_ENTITY_CODE'
17590 , p_source_type_code => 'Y'
17591 , p_source_application_id => 602
17592 );
17593 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
17594 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
17595 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
17596 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
17597 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
17598 l_rec_acct_attrs.array_num_value(7) := p_source_21;
17599 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17600 l_rec_acct_attrs.array_char_value(8) := p_source_22;
17601 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
17602 l_rec_acct_attrs.array_char_value(9) := p_source_23;
17603 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
17604 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
17605 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17606 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
17607 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
17608 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
17609 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
17610 l_rec_acct_attrs.array_char_value(13) := p_source_17;
17611 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
17612 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
17613 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
17614 l_rec_acct_attrs.array_num_value(15) := p_source_26;
17615 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
17616 l_rec_acct_attrs.array_char_value(16) := p_source_27;
17617 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
17618 l_rec_acct_attrs.array_num_value(17) := p_source_28;
17619 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
17620 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
17621 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
17622 l_rec_acct_attrs.array_num_value(19) := p_source_26;
17623 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
17624 l_rec_acct_attrs.array_char_value(20) := p_source_27;
17625 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
17626 l_rec_acct_attrs.array_num_value(21) := p_source_28;
17627 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
17628 l_rec_acct_attrs.array_char_value(22) := p_source_29;
17629 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
17630 l_rec_acct_attrs.array_num_value(23) := p_source_26;
17631 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
17632 l_rec_acct_attrs.array_char_value(24) := p_source_27;
17633 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
17634 l_rec_acct_attrs.array_date_value(25) := p_source_35;
17635 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
17636 l_rec_acct_attrs.array_num_value(26) := p_source_36;
17637 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
17638 l_rec_acct_attrs.array_char_value(27) := p_source_37;
17639 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
17640 l_rec_acct_attrs.array_num_value(28) := p_source_28;
17641 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
17642 l_rec_acct_attrs.array_char_value(29) := p_source_31;
17643 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
17644 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
17645 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
17646 l_rec_acct_attrs.array_char_value(31) := p_source_22;
17647 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
17648 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
17649 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
17650 l_rec_acct_attrs.array_num_value(33) := p_source_32;
17651 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
17652 l_rec_acct_attrs.array_num_value(34) := p_source_32;
17653
17654 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17655 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17656
17657 ---------------------------------------------------------------------------------------------------------------
17658 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17659 ---------------------------------------------------------------------------------------------------------------
17660 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17661
17662 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17663 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17664
17665 IF xla_accounting_cache_pkg.GetValueChar
17666 (p_source_code => 'LEDGER_CATEGORY_CODE'
17667 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17668 AND l_bflow_method_code = 'PRIOR_ENTRY'
17669 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17670 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17671 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17672 )
17673 THEN
17674 xla_ae_lines_pkg.BflowUpgEntry
17675 (p_business_method_code => l_bflow_method_code
17676 ,p_business_class_code => l_bflow_class_code
17677 ,p_balance_type => l_balance_type_code);
17678 ELSE
17679 NULL;
17680 -- No business flow processing for business flow method of NONE.
17681 END IF;
17682
17683 --
17684 -- call analytical criteria
17685 --
17686
17687 --
17688 -- call description
17689 --
17690
17691 xla_ae_lines_pkg.SetLineDescription(
17692 p_ae_header_id => l_ae_header_id
17693 ,p_description => Description_2 (
17694 p_application_id => p_application_id
17695 , p_ae_header_id => l_ae_header_id
17696 , p_source_3 => p_source_3
17697 )
17698 );
17699
17700
17701 --
17702 -- call ADRs
17703 -- Bug 4922099
17704 --
17705 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17706 (NVL(l_actual_upg_option, 'N') = 'O') OR
17707 (NVL(l_enc_upg_option, 'N') = 'O')
17708 )
17709 THEN
17710 NULL;
17711 --
17712 --
17713
17714 l_ccid := AcctDerRule_9(
17715 p_application_id => p_application_id
17716 , p_ae_header_id => l_ae_header_id
17717 , p_source_9 => p_source_9
17718 , x_transaction_coa_id => l_adr_transaction_coa_id
17719 , x_accounting_coa_id => l_adr_accounting_coa_id
17720 , x_value_type_code => l_adr_value_type_code
17721 , p_side => 'NA'
17722 );
17723
17724 xla_ae_lines_pkg.set_ccid(
17725 p_code_combination_id => l_ccid
17726 , p_value_type_code => l_adr_value_type_code
17727 , p_transaction_coa_id => l_adr_transaction_coa_id
17728 , p_accounting_coa_id => l_adr_accounting_coa_id
17729 , p_adr_code => 'FV_ACCOUNT_RULE'
17730 , p_adr_type_code => 'S'
17731 , p_component_type => l_component_type
17732 , p_component_code => l_component_code
17733 , p_component_type_code => l_component_type_code
17734 , p_component_appl_id => l_component_appl_id
17735 , p_amb_context_code => l_amb_context_code
17736 , p_side => 'NA'
17737 );
17738
17739
17740 l_segment := AcctDerRule_5(
17741 p_application_id => p_application_id
17742 , p_ae_header_id => l_ae_header_id
17743 , p_source_7 => p_source_7
17744 , p_source_8 => p_source_8
17745 , x_transaction_coa_id => l_adr_transaction_coa_id
17746 , x_accounting_coa_id => l_adr_accounting_coa_id
17747 , x_flexfield_segment_code => l_adr_flexfield_segment_code
17748 , x_flex_value_set_id => l_adr_flex_value_set_id
17749 , x_value_type_code => l_adr_value_type_code
17750 , x_value_combination_id => l_adr_value_combination_id
17751 , x_value_segment_code => l_adr_value_segment_code
17752 , p_side => 'NA'
17753 , p_override_seg_flag => 'Y'
17754 );
17755
17756 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
17757
17758 xla_ae_lines_pkg.set_segment(
17759 p_to_segment_code => 'GL_ACCOUNT'
17760 , p_segment_value => l_segment
17761 , p_from_segment_code => l_adr_value_segment_code
17762 , p_from_combination_id => l_adr_value_combination_id
17763 , p_value_type_code => l_adr_value_type_code
17764 , p_transaction_coa_id => l_adr_transaction_coa_id
17765 , p_accounting_coa_id => l_adr_accounting_coa_id
17766 , p_flexfield_segment_code => l_adr_flexfield_segment_code
17767 , p_flex_value_set_id => l_adr_flex_value_set_id
17768 , p_adr_code => 'FV_46X002'
17769 , p_adr_type_code => 'S'
17770 , p_component_type => l_component_type
17771 , p_component_code => l_component_code
17772 , p_component_type_code => l_component_type_code
17773 , p_component_appl_id => l_component_appl_id
17774 , p_amb_context_code => l_amb_context_code
17775 , p_entity_code => 'PURCHASE_ORDER'
17776 , p_event_class_code => 'PO_PA'
17777 , p_side => 'NA'
17778 );
17779
17780 END IF;
17781
17782 --
17783 --
17784 END IF;
17785 --
17786 -- Bug 4922099
17787 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17788 (NVL(l_enc_upg_option, 'N') = 'O')
17789 ) AND
17790 (l_bflow_method_code = 'PRIOR_ENTRY')
17791 )
17792 THEN
17793 IF
17794 --
17795 1 = 2
17796 --
17797 THEN
17798 xla_accounting_err_pkg.build_message
17799 (p_appli_s_name => 'XLA'
17800 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17801 ,p_token_1 => 'LINE_NUMBER'
17802 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17803 ,p_token_2 => 'LINE_TYPE_NAME'
17804 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17805 l_component_type
17806 ,l_component_code
17807 ,l_component_type_code
17808 ,l_component_appl_id
17809 ,l_amb_context_code
17810 ,l_entity_code
17811 ,l_event_class_code
17812 )
17813 ,p_token_3 => 'OWNER'
17814 ,p_value_3 => xla_lookups_pkg.get_meaning(
17815 p_lookup_type => 'XLA_OWNER_TYPE'
17816 ,p_lookup_code => l_component_type_code
17817 )
17818 ,p_token_4 => 'PRODUCT_NAME'
17819 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17820 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17821 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17822 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17823 ,p_ae_header_id => NULL
17824 );
17825
17826 IF (C_LEVEL_ERROR>= g_log_level) THEN
17827 trace
17828 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17829 ,p_level => C_LEVEL_ERROR
17830 ,p_module => l_log_module);
17831 END IF;
17832 END IF;
17833 END IF;
17834 --
17835 --
17836 ------------------------------------------------------------------------------------------------
17837 -- 4219869 Business Flow
17838 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17839 -- Prior Entry. Currently, the following code is always generated.
17840 ------------------------------------------------------------------------------------------------
17841 XLA_AE_LINES_PKG.ValidateCurrentLine;
17842
17843 ------------------------------------------------------------------------------------
17844 -- 4219869 Business Flow
17845 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17846 ------------------------------------------------------------------------------------
17847 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17848
17849 ----------------------------------------------------------------------------------
17850 -- 4219869 Business Flow
17851 -- Update journal entry status -- Need to generate this within IF <condition>
17852 ----------------------------------------------------------------------------------
17853 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17854 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17855 ,p_balance_type_code => l_balance_type_code
17856 );
17857
17858 -------------------------------------------------------------------------------------------
17859 -- 4262811 - Generate the Accrual Reversal lines
17860 -------------------------------------------------------------------------------------------
17861 BEGIN
17862 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17863 (g_array_event(p_event_id).array_value_num('header_index'));
17864 IF l_acc_rev_flag IS NULL THEN
17865 l_acc_rev_flag := 'N';
17866 END IF;
17867 EXCEPTION
17868 WHEN OTHERS THEN
17869 l_acc_rev_flag := 'N';
17870 END;
17871 --
17872 IF (l_acc_rev_flag = 'Y') THEN
17873
17874 -- 4645092 ------------------------------------------------------------------------------
17875 -- To allow MPA report to determine if it should generate report process
17876 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17877 ------------------------------------------------------------------------------------------
17878
17879 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17880 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17881
17882 --
17883 -- Update the line information that should be overwritten
17884 --
17885 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17886 p_header_num => 1);
17887 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17888
17889 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17890
17891 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17892 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17893 END IF;
17894
17895 --
17896 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17897 --
17898 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17899 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17900 ELSE
17901 ---------------------------------------------------------------------------------------------------
17902 -- 4262811a Switch Sign
17903 ---------------------------------------------------------------------------------------------------
17904 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17905 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17906 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17907 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17908 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17909 -- 5132302
17910 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17911 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17912
17913 END IF;
17914
17915 -- 4955764
17916 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17917 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17918
17919
17920 XLA_AE_LINES_PKG.ValidateCurrentLine;
17921 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17922
17923 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17924 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17925 ,p_balance_type_code => l_balance_type_code);
17926
17927 END IF;
17928
17929 -----------------------------------------------------------------------------------------
17930 -- 4262811 Multiperiod Accounting
17931 -----------------------------------------------------------------------------------------
17932 -- No MPA option is assigned.
17933
17934
17935 END IF;
17936 END IF;
17937 --
17938
17939 --
17940 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17941 trace
17942 (p_msg => 'END of AcctLineType_38'
17943 ,p_level => C_LEVEL_PROCEDURE
17944 ,p_module => l_log_module);
17945 END IF;
17946 --
17947 EXCEPTION
17948 WHEN xla_exceptions_pkg.application_exception THEN
17949 RAISE;
17950 WHEN OTHERS THEN
17951 xla_exceptions_pkg.raise_message
17952 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_38');
17953 END AcctLineType_38;
17954 --
17955
17956 ---------------------------------------
17957 --
17958 -- PRIVATE FUNCTION
17959 -- AcctLineType_39
17960 --
17961 ---------------------------------------
17962 PROCEDURE AcctLineType_39 (
17963 p_application_id IN NUMBER
17964 ,p_event_id IN NUMBER
17965 ,p_calculate_acctd_flag IN VARCHAR2
17966 ,p_calculate_g_l_flag IN VARCHAR2
17967 ,p_actual_flag IN OUT VARCHAR2
17968 ,p_balance_type_code OUT VARCHAR2
17969 ,p_gain_or_loss_ref OUT VARCHAR2
17970
17971 --Journal entry Line Description
17972 , p_source_3 IN VARCHAR2
17973 --Federal Fund Category
17974 , p_source_7 IN VARCHAR2
17975 --Federal Fund Expired Status
17976 , p_source_8 IN VARCHAR2
17977 --Budget Account
17978 , p_source_9 IN NUMBER
17979 --Federal Prior Year Flag
17980 , p_source_10 IN VARCHAR2
17981 --Federal Net Pya Adj Amt
17982 , p_source_11 IN NUMBER
17983 --Main Or Backing Code
17984 , p_source_13 IN VARCHAR2
17985 --PO Distribution Type
17986 , p_source_14 IN VARCHAR2
17987 --Accounting Reversal Flag
17988 , p_source_15 IN VARCHAR2
17989 --Distribution Link Type
17990 , p_source_17 IN VARCHAR2
17991 --PO Distribution Identifier
17992 , p_source_19 IN NUMBER
17993 --PO Header Identifier
17994 , p_source_20 IN NUMBER
17995 --Applied To Application Identifier
17996 , p_source_21 IN NUMBER
17997 --Applied To Distribution Link Type
17998 , p_source_22 IN VARCHAR2
17999 --Applied To Entity Code
18000 , p_source_23 IN VARCHAR2
18001 --Applied To Distribution Identifier 1
18002 , p_source_24 IN NUMBER
18003 --Applied To Header Identifier 1
18004 , p_source_25 IN NUMBER
18005 --Entered Amount
18006 , p_source_26 IN NUMBER
18007 --Currency Code
18008 , p_source_27 IN VARCHAR2
18009 --Accounted Amount
18010 , p_source_28 IN NUMBER
18011 --PO Encumbrance Upgrade Option
18012 , p_source_29 IN VARCHAR2
18013 --JFMIP Reference
18014 , p_source_31 IN VARCHAR2
18015 --PO Upgrade Encumbrance Type Identifier
18016 , p_source_32 IN NUMBER
18017 --Currency Conversion Date
18018 , p_source_35 IN DATE
18019 --Currency Conversion Rate
18020 , p_source_36 IN NUMBER
18021 --Currency Conversion Type
18022 , p_source_37 IN VARCHAR2
18023 )
18024 IS
18025
18026 l_component_type VARCHAR2(80);
18027 l_component_code VARCHAR2(30);
18028 l_component_type_code VARCHAR2(1);
18029 l_component_appl_id INTEGER;
18030 l_amb_context_code VARCHAR2(30);
18031 l_entity_code VARCHAR2(30);
18032 l_event_class_code VARCHAR2(30);
18033 l_ae_header_id NUMBER;
18034 l_event_type_code VARCHAR2(30);
18035 l_line_definition_code VARCHAR2(30);
18036 l_line_definition_owner_code VARCHAR2(1);
18037 --
18038 -- adr variables
18039 l_segment VARCHAR2(30);
18040 l_ccid NUMBER;
18041 l_adr_transaction_coa_id NUMBER;
18042 l_adr_accounting_coa_id NUMBER;
18043 l_adr_flexfield_segment_code VARCHAR2(30);
18044 l_adr_flex_value_set_id NUMBER;
18045 l_adr_value_type_code VARCHAR2(30);
18046 l_adr_value_combination_id NUMBER;
18047 l_adr_value_segment_code VARCHAR2(30);
18048
18049 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18050 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18051 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18052 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18053
18054 -- 4262811 Variables ------------------------------------------------------------------------------------------
18055 l_entered_amt_idx NUMBER;
18056 l_accted_amt_idx NUMBER;
18057 l_acc_rev_flag VARCHAR2(1);
18058 l_accrual_line_num NUMBER;
18059 l_tmp_amt NUMBER;
18060 l_acc_rev_natural_side_code VARCHAR2(1);
18061
18062 l_num_entries NUMBER;
18063 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18064 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18065 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18066 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18067 l_recog_line_1 NUMBER;
18068 l_recog_line_2 NUMBER;
18069
18070 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18071 l_bflow_applied_to_amt NUMBER; -- 5132302
18072 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18073
18074 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18075
18076 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18077 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18078
18079 ---------------------------------------------------------------------------------------------------------------
18080
18081
18082 --
18083 -- bulk performance
18084 --
18085 l_balance_type_code VARCHAR2(1);
18086 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18087 l_log_module VARCHAR2(240);
18088
18089 --
18090 -- Upgrade strategy
18091 --
18092 l_actual_upg_option VARCHAR2(1);
18093 l_enc_upg_option VARCHAR2(1);
18094
18095 --
18096 BEGIN
18097 --
18098 IF g_log_enabled THEN
18099 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
18100 END IF;
18101 --
18102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18103
18104 trace
18105 (p_msg => 'BEGIN of AcctLineType_39'
18106 ,p_level => C_LEVEL_PROCEDURE
18107 ,p_module => l_log_module);
18108
18109 END IF;
18110 --
18111 l_component_type := 'AMB_JLT';
18112 l_component_code := 'FV_PO_REVERSE_PYA_DR';
18113 l_component_type_code := 'S';
18114 l_component_appl_id := 201;
18115 l_amb_context_code := 'DEFAULT';
18116 l_entity_code := 'PURCHASE_ORDER';
18117 l_event_class_code := 'PO_PA';
18118 l_event_type_code := 'PO_PA_ALL';
18119 l_line_definition_owner_code := 'S';
18120 l_line_definition_code := 'FV_PO_ALL';
18121 --
18122 l_balance_type_code := 'A';
18123 l_segment := NULL;
18124 l_ccid := NULL;
18125 l_adr_transaction_coa_id := NULL;
18126 l_adr_accounting_coa_id := NULL;
18127 l_adr_flexfield_segment_code := NULL;
18128 l_adr_flex_value_set_id := NULL;
18129 l_adr_value_type_code := NULL;
18130 l_adr_value_combination_id := NULL;
18131 l_adr_value_segment_code := NULL;
18132
18133 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18134 l_bflow_class_code := ''; -- 4219869 Business Flow
18135 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18136 l_budgetary_control_flag := 'Y';
18137
18138 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18139 l_bflow_applied_to_amt := NULL; -- 5132302
18140 l_entered_amt_idx := NULL; -- 4262811
18141 l_accted_amt_idx := NULL; -- 4262811
18142 l_acc_rev_flag := NULL; -- 4262811
18143 l_accrual_line_num := NULL; -- 4262811
18144 l_tmp_amt := NULL; -- 4262811
18145 --
18146
18147 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18148 l_balance_type_code <> 'B' THEN
18149 IF NVL(
18150 xla_ae_sources_pkg.GetSystemSourceChar(
18151 p_source_code => 'XLA_EVENT_TYPE_CODE'
18152 , p_source_type_code => 'Y'
18153 , p_source_application_id => 602
18154 ),'
18155 ') = 'PO_PA_CANCELLED' AND
18156 NVL(p_source_13,'
18157 ') = 'M' AND
18158 (NVL(p_source_14,'
18159 ') <> 'AGREEMENT' OR
18160 p_source_14 IS NULL ) AND
18161 NVL(p_source_10,'
18162 ') = 'Y'
18163 THEN
18164
18165 --
18166 XLA_AE_LINES_PKG.SetNewLine;
18167
18168 p_balance_type_code := l_balance_type_code;
18169 -- set the flag so later we will know whether the gain loss line needs to be created
18170
18171 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18172 p_actual_flag :='A';
18173 END IF;
18174
18175 --
18176 -- bulk performance
18177 --
18178 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18179 p_header_num => 0); -- 4262811
18180 --
18181 -- set accounting line options
18182 --
18183 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18184 p_natural_side_code => 'C'
18185 , p_gain_or_loss_flag => 'N'
18186 , p_gl_transfer_mode_code => 'S'
18187 , p_acct_entry_type_code => 'A'
18188 , p_switch_side_flag => 'Y'
18189 , p_merge_duplicate_code => 'N'
18190 );
18191 --
18192 l_acc_rev_natural_side_code := 'D'; -- 4262811
18193 --
18194 --
18195 -- set accounting line type info
18196 --
18197 xla_ae_lines_pkg.SetAcctLineType
18198 (p_component_type => l_component_type
18199 ,p_event_type_code => l_event_type_code
18200 ,p_line_definition_owner_code => l_line_definition_owner_code
18201 ,p_line_definition_code => l_line_definition_code
18202 ,p_accounting_line_code => l_component_code
18203 ,p_accounting_line_type_code => l_component_type_code
18204 ,p_accounting_line_appl_id => l_component_appl_id
18205 ,p_amb_context_code => l_amb_context_code
18206 ,p_entity_code => l_entity_code
18207 ,p_event_class_code => l_event_class_code);
18208 --
18209 -- set accounting class
18210 --
18211 xla_ae_lines_pkg.SetAcctClass(
18212 p_accounting_class_code => 'PURCHASE_ORDER'
18213 , p_ae_header_id => l_ae_header_id
18214 );
18215
18216 --
18217 -- set rounding class
18218 --
18219 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18220 'PURCHASE_ORDER';
18221
18222 --
18223 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18224 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18225 --
18226 -- bulk performance
18227 --
18228 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18229
18230 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18231 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18232
18233 -- 4955764
18234 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18235 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18236
18237 -- 4458381 Public Sector Enh
18238
18239 --
18240 -- set accounting attributes for the line type
18241 --
18242 l_entered_amt_idx := 23;
18243 l_accted_amt_idx := 28;
18244 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18245 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18246 l_rec_acct_attrs.array_char_value(1) := p_source_15;
18247 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
18248 l_rec_acct_attrs.array_num_value(2) :=
18249 xla_ae_sources_pkg.GetSystemSourceNum(
18250 p_source_code => 'XLA_EVENT_APPL_ID'
18251 , p_source_type_code => 'Y'
18252 , p_source_application_id => 602
18253 );
18254 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
18255 l_rec_acct_attrs.array_char_value(3) := p_source_17;
18256 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
18257 l_rec_acct_attrs.array_char_value(4) :=
18258 xla_ae_sources_pkg.GetSystemSourceChar(
18259 p_source_code => 'XLA_ENTITY_CODE'
18260 , p_source_type_code => 'Y'
18261 , p_source_application_id => 602
18262 );
18263 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
18264 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
18265 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
18266 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
18267 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
18268 l_rec_acct_attrs.array_num_value(7) := p_source_21;
18269 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18270 l_rec_acct_attrs.array_char_value(8) := p_source_22;
18271 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
18272 l_rec_acct_attrs.array_char_value(9) := p_source_23;
18273 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
18274 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
18275 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18276 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
18277 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
18278 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
18279 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
18280 l_rec_acct_attrs.array_char_value(13) := p_source_17;
18281 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
18282 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
18283 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
18284 l_rec_acct_attrs.array_num_value(15) := p_source_26;
18285 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
18286 l_rec_acct_attrs.array_char_value(16) := p_source_27;
18287 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
18288 l_rec_acct_attrs.array_num_value(17) := p_source_28;
18289 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
18290 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
18291 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
18292 l_rec_acct_attrs.array_num_value(19) := p_source_26;
18293 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
18294 l_rec_acct_attrs.array_char_value(20) := p_source_27;
18295 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
18296 l_rec_acct_attrs.array_num_value(21) := p_source_28;
18297 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
18298 l_rec_acct_attrs.array_char_value(22) := p_source_29;
18299 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
18300 l_rec_acct_attrs.array_num_value(23) := p_source_26;
18301 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
18302 l_rec_acct_attrs.array_char_value(24) := p_source_27;
18303 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
18304 l_rec_acct_attrs.array_date_value(25) := p_source_35;
18305 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
18306 l_rec_acct_attrs.array_num_value(26) := p_source_36;
18307 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
18308 l_rec_acct_attrs.array_char_value(27) := p_source_37;
18309 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
18310 l_rec_acct_attrs.array_num_value(28) := p_source_28;
18311 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
18312 l_rec_acct_attrs.array_char_value(29) := p_source_31;
18313 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
18314 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
18315 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
18316 l_rec_acct_attrs.array_char_value(31) := p_source_22;
18317 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
18318 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
18319 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
18320 l_rec_acct_attrs.array_num_value(33) := p_source_32;
18321 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
18322 l_rec_acct_attrs.array_num_value(34) := p_source_32;
18323
18324 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18325 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18326
18327 ---------------------------------------------------------------------------------------------------------------
18328 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18329 ---------------------------------------------------------------------------------------------------------------
18330 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18331
18332 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18333 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18334
18335 IF xla_accounting_cache_pkg.GetValueChar
18336 (p_source_code => 'LEDGER_CATEGORY_CODE'
18337 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18338 AND l_bflow_method_code = 'PRIOR_ENTRY'
18339 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18340 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18341 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18342 )
18343 THEN
18344 xla_ae_lines_pkg.BflowUpgEntry
18345 (p_business_method_code => l_bflow_method_code
18346 ,p_business_class_code => l_bflow_class_code
18347 ,p_balance_type => l_balance_type_code);
18348 ELSE
18349 NULL;
18350 -- No business flow processing for business flow method of NONE.
18351 END IF;
18352
18353 --
18354 -- call analytical criteria
18355 --
18356
18357 --
18358 -- call description
18359 --
18360
18361 xla_ae_lines_pkg.SetLineDescription(
18362 p_ae_header_id => l_ae_header_id
18363 ,p_description => Description_2 (
18364 p_application_id => p_application_id
18365 , p_ae_header_id => l_ae_header_id
18366 , p_source_3 => p_source_3
18367 )
18368 );
18369
18370
18371 --
18372 -- call ADRs
18373 -- Bug 4922099
18374 --
18375 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18376 (NVL(l_actual_upg_option, 'N') = 'O') OR
18377 (NVL(l_enc_upg_option, 'N') = 'O')
18378 )
18379 THEN
18380 NULL;
18381 --
18382 --
18383
18384 l_ccid := AcctDerRule_9(
18385 p_application_id => p_application_id
18386 , p_ae_header_id => l_ae_header_id
18387 , p_source_9 => p_source_9
18388 , x_transaction_coa_id => l_adr_transaction_coa_id
18389 , x_accounting_coa_id => l_adr_accounting_coa_id
18390 , x_value_type_code => l_adr_value_type_code
18391 , p_side => 'NA'
18392 );
18393
18394 xla_ae_lines_pkg.set_ccid(
18395 p_code_combination_id => l_ccid
18396 , p_value_type_code => l_adr_value_type_code
18397 , p_transaction_coa_id => l_adr_transaction_coa_id
18398 , p_accounting_coa_id => l_adr_accounting_coa_id
18399 , p_adr_code => 'FV_ACCOUNT_RULE'
18400 , p_adr_type_code => 'S'
18401 , p_component_type => l_component_type
18402 , p_component_code => l_component_code
18403 , p_component_type_code => l_component_type_code
18404 , p_component_appl_id => l_component_appl_id
18405 , p_amb_context_code => l_amb_context_code
18406 , p_side => 'NA'
18407 );
18408
18409
18413 , p_source_7 => p_source_7
18410 l_segment := AcctDerRule_12(
18411 p_application_id => p_application_id
18412 , p_ae_header_id => l_ae_header_id
18414 , p_source_8 => p_source_8
18415 , p_source_10 => p_source_10
18416 , p_source_11 => p_source_11
18417 , x_transaction_coa_id => l_adr_transaction_coa_id
18418 , x_accounting_coa_id => l_adr_accounting_coa_id
18419 , x_flexfield_segment_code => l_adr_flexfield_segment_code
18420 , x_flex_value_set_id => l_adr_flex_value_set_id
18421 , x_value_type_code => l_adr_value_type_code
18422 , x_value_combination_id => l_adr_value_combination_id
18423 , x_value_segment_code => l_adr_value_segment_code
18424 , p_side => 'NA'
18425 , p_override_seg_flag => 'Y'
18426 );
18427
18428 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
18429
18430 xla_ae_lines_pkg.set_segment(
18431 p_to_segment_code => 'GL_ACCOUNT'
18432 , p_segment_value => l_segment
18433 , p_from_segment_code => l_adr_value_segment_code
18434 , p_from_combination_id => l_adr_value_combination_id
18435 , p_value_type_code => l_adr_value_type_code
18436 , p_transaction_coa_id => l_adr_transaction_coa_id
18437 , p_accounting_coa_id => l_adr_accounting_coa_id
18438 , p_flexfield_segment_code => l_adr_flexfield_segment_code
18439 , p_flex_value_set_id => l_adr_flex_value_set_id
18440 , p_adr_code => 'FV_PYA_46X002_487101'
18441 , p_adr_type_code => 'S'
18442 , p_component_type => l_component_type
18443 , p_component_code => l_component_code
18444 , p_component_type_code => l_component_type_code
18445 , p_component_appl_id => l_component_appl_id
18446 , p_amb_context_code => l_amb_context_code
18447 , p_entity_code => 'PURCHASE_ORDER'
18448 , p_event_class_code => 'PO_PA'
18449 , p_side => 'NA'
18450 );
18451
18452 END IF;
18453
18454 --
18455 --
18456 END IF;
18457 --
18458 -- Bug 4922099
18459 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18460 (NVL(l_enc_upg_option, 'N') = 'O')
18461 ) AND
18462 (l_bflow_method_code = 'PRIOR_ENTRY')
18463 )
18464 THEN
18465 IF
18466 --
18467 1 = 2
18468 --
18469 THEN
18470 xla_accounting_err_pkg.build_message
18471 (p_appli_s_name => 'XLA'
18472 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18473 ,p_token_1 => 'LINE_NUMBER'
18474 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18475 ,p_token_2 => 'LINE_TYPE_NAME'
18476 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18477 l_component_type
18478 ,l_component_code
18479 ,l_component_type_code
18480 ,l_component_appl_id
18481 ,l_amb_context_code
18482 ,l_entity_code
18483 ,l_event_class_code
18484 )
18485 ,p_token_3 => 'OWNER'
18486 ,p_value_3 => xla_lookups_pkg.get_meaning(
18487 p_lookup_type => 'XLA_OWNER_TYPE'
18488 ,p_lookup_code => l_component_type_code
18489 )
18490 ,p_token_4 => 'PRODUCT_NAME'
18491 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18492 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18493 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18494 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18495 ,p_ae_header_id => NULL
18496 );
18497
18498 IF (C_LEVEL_ERROR>= g_log_level) THEN
18499 trace
18500 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18501 ,p_level => C_LEVEL_ERROR
18502 ,p_module => l_log_module);
18503 END IF;
18504 END IF;
18505 END IF;
18506 --
18507 --
18508 ------------------------------------------------------------------------------------------------
18509 -- 4219869 Business Flow
18510 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18511 -- Prior Entry. Currently, the following code is always generated.
18512 ------------------------------------------------------------------------------------------------
18513 XLA_AE_LINES_PKG.ValidateCurrentLine;
18517 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18514
18515 ------------------------------------------------------------------------------------
18516 -- 4219869 Business Flow
18518 ------------------------------------------------------------------------------------
18519 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18520
18521 ----------------------------------------------------------------------------------
18522 -- 4219869 Business Flow
18523 -- Update journal entry status -- Need to generate this within IF <condition>
18524 ----------------------------------------------------------------------------------
18525 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18526 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18527 ,p_balance_type_code => l_balance_type_code
18528 );
18529
18530 -------------------------------------------------------------------------------------------
18531 -- 4262811 - Generate the Accrual Reversal lines
18532 -------------------------------------------------------------------------------------------
18533 BEGIN
18534 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18535 (g_array_event(p_event_id).array_value_num('header_index'));
18536 IF l_acc_rev_flag IS NULL THEN
18537 l_acc_rev_flag := 'N';
18538 END IF;
18539 EXCEPTION
18540 WHEN OTHERS THEN
18541 l_acc_rev_flag := 'N';
18542 END;
18543 --
18544 IF (l_acc_rev_flag = 'Y') THEN
18545
18546 -- 4645092 ------------------------------------------------------------------------------
18547 -- To allow MPA report to determine if it should generate report process
18548 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18549 ------------------------------------------------------------------------------------------
18550
18551 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18552 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18553
18554 --
18555 -- Update the line information that should be overwritten
18556 --
18557 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18558 p_header_num => 1);
18559 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18560
18561 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18562
18563 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18564 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18565 END IF;
18566
18567 --
18568 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18569 --
18570 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18571 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18572 ELSE
18573 ---------------------------------------------------------------------------------------------------
18574 -- 4262811a Switch Sign
18575 ---------------------------------------------------------------------------------------------------
18576 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18577 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18578 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18579 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18580 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18581 -- 5132302
18582 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18583 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18584
18585 END IF;
18586
18587 -- 4955764
18588 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18589 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18590
18591
18592 XLA_AE_LINES_PKG.ValidateCurrentLine;
18593 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18594
18595 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18596 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18597 ,p_balance_type_code => l_balance_type_code);
18598
18599 END IF;
18600
18601 -----------------------------------------------------------------------------------------
18602 -- 4262811 Multiperiod Accounting
18603 -----------------------------------------------------------------------------------------
18604 -- No MPA option is assigned.
18605
18606
18607 END IF;
18608 END IF;
18609 --
18610
18611 --
18612 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18613 trace
18614 (p_msg => 'END of AcctLineType_39'
18615 ,p_level => C_LEVEL_PROCEDURE
18616 ,p_module => l_log_module);
18617 END IF;
18618 --
18619 EXCEPTION
18620 WHEN xla_exceptions_pkg.application_exception THEN
18621 RAISE;
18622 WHEN OTHERS THEN
18623 xla_exceptions_pkg.raise_message
18624 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_39');
18625 END AcctLineType_39;
18626 --
18627
18628 ---------------------------------------
18629 --
18630 -- PRIVATE FUNCTION
18631 -- AcctLineType_40
18632 --
18633 ---------------------------------------
18634 PROCEDURE AcctLineType_40 (
18635 p_application_id IN NUMBER
18636 ,p_event_id IN NUMBER
18637 ,p_calculate_acctd_flag IN VARCHAR2
18638 ,p_calculate_g_l_flag IN VARCHAR2
18639 ,p_actual_flag IN OUT VARCHAR2
18640 ,p_balance_type_code OUT VARCHAR2
18641 ,p_gain_or_loss_ref OUT VARCHAR2
18642
18643 --Federal Fund Category
18644 , p_source_7 IN VARCHAR2
18645 --Federal Fund Expired Status
18646 , p_source_8 IN VARCHAR2
18647 --Budget Account
18648 , p_source_9 IN NUMBER
18649 --Federal Prior Year Flag
18650 , p_source_10 IN VARCHAR2
18651 --Main Or Backing Code
18652 , p_source_13 IN VARCHAR2
18653 --PO Distribution Type
18654 , p_source_14 IN VARCHAR2
18655 --Accounting Reversal Flag
18656 , p_source_15 IN VARCHAR2
18657 --Distribution Link Type
18658 , p_source_17 IN VARCHAR2
18659 --PO Distribution Identifier
18660 , p_source_19 IN NUMBER
18661 --PO Header Identifier
18662 , p_source_20 IN NUMBER
18663 --Applied To Application Identifier
18664 , p_source_21 IN NUMBER
18665 --Applied To Distribution Link Type
18666 , p_source_22 IN VARCHAR2
18667 --Applied To Entity Code
18668 , p_source_23 IN VARCHAR2
18669 --Applied To Distribution Identifier 1
18670 , p_source_24 IN NUMBER
18671 --Applied To Header Identifier 1
18672 , p_source_25 IN NUMBER
18673 --Entered Amount
18674 , p_source_26 IN NUMBER
18675 --Currency Code
18676 , p_source_27 IN VARCHAR2
18677 --Accounted Amount
18678 , p_source_28 IN NUMBER
18679 --PO Encumbrance Upgrade Option
18680 , p_source_29 IN VARCHAR2
18681 --JFMIP Reference
18682 , p_source_31 IN VARCHAR2
18683 --PO Upgrade Encumbrance Type Identifier
18684 , p_source_32 IN NUMBER
18685 )
18686 IS
18687
18688 l_component_type VARCHAR2(80);
18689 l_component_code VARCHAR2(30);
18690 l_component_type_code VARCHAR2(1);
18691 l_component_appl_id INTEGER;
18692 l_amb_context_code VARCHAR2(30);
18693 l_entity_code VARCHAR2(30);
18694 l_event_class_code VARCHAR2(30);
18695 l_ae_header_id NUMBER;
18696 l_event_type_code VARCHAR2(30);
18697 l_line_definition_code VARCHAR2(30);
18698 l_line_definition_owner_code VARCHAR2(1);
18699 --
18700 -- adr variables
18701 l_segment VARCHAR2(30);
18702 l_ccid NUMBER;
18703 l_adr_transaction_coa_id NUMBER;
18704 l_adr_accounting_coa_id NUMBER;
18705 l_adr_flexfield_segment_code VARCHAR2(30);
18706 l_adr_flex_value_set_id NUMBER;
18707 l_adr_value_type_code VARCHAR2(30);
18708 l_adr_value_combination_id NUMBER;
18709 l_adr_value_segment_code VARCHAR2(30);
18710
18711 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18712 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18713 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18714 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18715
18716 -- 4262811 Variables ------------------------------------------------------------------------------------------
18717 l_entered_amt_idx NUMBER;
18718 l_accted_amt_idx NUMBER;
18719 l_acc_rev_flag VARCHAR2(1);
18720 l_accrual_line_num NUMBER;
18721 l_tmp_amt NUMBER;
18722 l_acc_rev_natural_side_code VARCHAR2(1);
18723
18724 l_num_entries NUMBER;
18725 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18726 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18727 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18728 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18729 l_recog_line_1 NUMBER;
18730 l_recog_line_2 NUMBER;
18731
18732 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18733 l_bflow_applied_to_amt NUMBER; -- 5132302
18734 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18735
18736 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18737
18738 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18739 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18740
18741 ---------------------------------------------------------------------------------------------------------------
18742
18743
18744 --
18745 -- bulk performance
18746 --
18747 l_balance_type_code VARCHAR2(1);
18748 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18749 l_log_module VARCHAR2(240);
18750
18751 --
18752 -- Upgrade strategy
18753 --
18754 l_actual_upg_option VARCHAR2(1);
18755 l_enc_upg_option VARCHAR2(1);
18756
18757 --
18758 BEGIN
18759 --
18760 IF g_log_enabled THEN
18761 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
18762 END IF;
18763 --
18764 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18765
18766 trace
18767 (p_msg => 'BEGIN of AcctLineType_40'
18768 ,p_level => C_LEVEL_PROCEDURE
18769 ,p_module => l_log_module);
18770
18771 END IF;
18772 --
18773 l_component_type := 'AMB_JLT';
18774 l_component_code := 'FV_PO_UNRESERVE_CR';
18775 l_component_type_code := 'S';
18776 l_component_appl_id := 201;
18777 l_amb_context_code := 'DEFAULT';
18778 l_entity_code := 'PURCHASE_ORDER';
18779 l_event_class_code := 'PO_PA';
18780 l_event_type_code := 'PO_PA_ALL';
18781 l_line_definition_owner_code := 'S';
18782 l_line_definition_code := 'FV_PO_ALL';
18783 --
18784 l_balance_type_code := 'A';
18785 l_segment := NULL;
18786 l_ccid := NULL;
18787 l_adr_transaction_coa_id := NULL;
18788 l_adr_accounting_coa_id := NULL;
18789 l_adr_flexfield_segment_code := NULL;
18790 l_adr_flex_value_set_id := NULL;
18791 l_adr_value_type_code := NULL;
18792 l_adr_value_combination_id := NULL;
18793 l_adr_value_segment_code := NULL;
18794
18795 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
18796 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
18797 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
18798 l_budgetary_control_flag := 'Y';
18799
18800 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18801 l_bflow_applied_to_amt := NULL; -- 5132302
18802 l_entered_amt_idx := NULL; -- 4262811
18803 l_accted_amt_idx := NULL; -- 4262811
18804 l_acc_rev_flag := NULL; -- 4262811
18805 l_accrual_line_num := NULL; -- 4262811
18806 l_tmp_amt := NULL; -- 4262811
18807 --
18808
18809 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18810 l_balance_type_code <> 'B' THEN
18811 IF (NVL(
18812 xla_ae_sources_pkg.GetSystemSourceChar(
18813 p_source_code => 'XLA_EVENT_TYPE_CODE'
18814 , p_source_type_code => 'Y'
18815 , p_source_application_id => 602
18816 ),'
18817 ') = 'PO_PA_UNRESERVED' OR
18818 NVL(
18819 xla_ae_sources_pkg.GetSystemSourceChar(
18820 p_source_code => 'XLA_EVENT_TYPE_CODE'
18821 , p_source_type_code => 'Y'
18822 , p_source_application_id => 602
18823 ),'
18824 ') = 'PO_PA_REJECTED' OR
18825 NVL(
18826 xla_ae_sources_pkg.GetSystemSourceChar(
18827 p_source_code => 'XLA_EVENT_TYPE_CODE'
18828 , p_source_type_code => 'Y'
18829 , p_source_application_id => 602
18830 ),'
18831 ') = 'PO_PA_INV_CANCELLED' OR
18832 (NVL(
18833 xla_ae_sources_pkg.GetSystemSourceChar(
18834 p_source_code => 'XLA_EVENT_TYPE_CODE'
18835 , p_source_type_code => 'Y'
18836 , p_source_application_id => 602
18837 ),'
18838 ') = 'PO_PA_FINAL_CLOSED' AND
18839 NVL(p_source_10,'
18840 ') <> 'Y')
18841 ) AND NVL(p_source_13,'
18842 ') = 'M' AND
18843 (NVL(p_source_14,'
18844 ') <> 'AGREEMENT' OR
18845 p_source_14 IS NULL )
18846 THEN
18847
18848 --
18849 XLA_AE_LINES_PKG.SetNewLine;
18850
18851 p_balance_type_code := l_balance_type_code;
18852 -- set the flag so later we will know whether the gain loss line needs to be created
18853
18854 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18855 p_actual_flag :='A';
18856 END IF;
18857
18858 --
18859 -- bulk performance
18863 --
18860 --
18861 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18862 p_header_num => 0); -- 4262811
18864 -- set accounting line options
18865 --
18866 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18867 p_natural_side_code => 'C'
18868 , p_gain_or_loss_flag => 'N'
18869 , p_gl_transfer_mode_code => 'S'
18870 , p_acct_entry_type_code => 'A'
18871 , p_switch_side_flag => 'N'
18872 , p_merge_duplicate_code => 'N'
18873 );
18874 --
18875 l_acc_rev_natural_side_code := 'D'; -- 4262811
18876 --
18877 --
18878 -- set accounting line type info
18879 --
18880 xla_ae_lines_pkg.SetAcctLineType
18881 (p_component_type => l_component_type
18882 ,p_event_type_code => l_event_type_code
18883 ,p_line_definition_owner_code => l_line_definition_owner_code
18884 ,p_line_definition_code => l_line_definition_code
18885 ,p_accounting_line_code => l_component_code
18886 ,p_accounting_line_type_code => l_component_type_code
18887 ,p_accounting_line_appl_id => l_component_appl_id
18888 ,p_amb_context_code => l_amb_context_code
18889 ,p_entity_code => l_entity_code
18890 ,p_event_class_code => l_event_class_code);
18891 --
18892 -- set accounting class
18893 --
18894 xla_ae_lines_pkg.SetAcctClass(
18895 p_accounting_class_code => 'PURCHASE_ORDER'
18896 , p_ae_header_id => l_ae_header_id
18897 );
18898
18899 --
18900 -- set rounding class
18901 --
18902 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18903 'PURCHASE_ORDER';
18904
18905 --
18906 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18907 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18908 --
18909 -- bulk performance
18910 --
18911 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18912
18913 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18914 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18915
18916 -- 4955764
18917 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18918 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18919
18920 -- 4458381 Public Sector Enh
18921
18922 --
18923 -- set accounting attributes for the line type
18924 --
18925 l_entered_amt_idx := 23;
18926 l_accted_amt_idx := 25;
18927 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18928 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18929 l_rec_acct_attrs.array_char_value(1) := p_source_15;
18930 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
18931 l_rec_acct_attrs.array_num_value(2) :=
18932 xla_ae_sources_pkg.GetSystemSourceNum(
18933 p_source_code => 'XLA_EVENT_APPL_ID'
18934 , p_source_type_code => 'Y'
18935 , p_source_application_id => 602
18936 );
18937 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
18938 l_rec_acct_attrs.array_char_value(3) := p_source_17;
18939 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
18940 l_rec_acct_attrs.array_char_value(4) :=
18941 xla_ae_sources_pkg.GetSystemSourceChar(
18942 p_source_code => 'XLA_ENTITY_CODE'
18943 , p_source_type_code => 'Y'
18944 , p_source_application_id => 602
18945 );
18946 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
18947 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
18948 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
18949 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
18950 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
18951 l_rec_acct_attrs.array_num_value(7) := p_source_21;
18952 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18953 l_rec_acct_attrs.array_char_value(8) := p_source_22;
18954 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
18955 l_rec_acct_attrs.array_char_value(9) := p_source_23;
18956 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
18957 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
18958 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18959 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
18960 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
18961 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
18962 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
18963 l_rec_acct_attrs.array_char_value(13) := p_source_17;
18964 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
18965 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
18966 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
18967 l_rec_acct_attrs.array_num_value(15) := p_source_26;
18968 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
18969 l_rec_acct_attrs.array_char_value(16) := p_source_27;
18970 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
18971 l_rec_acct_attrs.array_num_value(17) := p_source_28;
18972 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
18973 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
18974 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
18975 l_rec_acct_attrs.array_num_value(19) := p_source_26;
18976 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
18977 l_rec_acct_attrs.array_char_value(20) := p_source_27;
18978 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
18979 l_rec_acct_attrs.array_num_value(21) := p_source_28;
18980 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
18981 l_rec_acct_attrs.array_char_value(22) := p_source_29;
18982 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
18983 l_rec_acct_attrs.array_num_value(23) := p_source_26;
18984 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
18985 l_rec_acct_attrs.array_char_value(24) := p_source_27;
18986 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
18987 l_rec_acct_attrs.array_num_value(25) := p_source_28;
18988 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
18989 l_rec_acct_attrs.array_char_value(26) := p_source_31;
18990 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
18991 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
18992 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
18993 l_rec_acct_attrs.array_char_value(28) := p_source_22;
18994 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
18995 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
18996 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
18997 l_rec_acct_attrs.array_num_value(30) := p_source_32;
18998 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
18999 l_rec_acct_attrs.array_num_value(31) := p_source_32;
19000
19001 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19002 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19003
19004 ---------------------------------------------------------------------------------------------------------------
19005 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19006 ---------------------------------------------------------------------------------------------------------------
19007 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19008
19009 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19010 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19011
19012 IF xla_accounting_cache_pkg.GetValueChar
19013 (p_source_code => 'LEDGER_CATEGORY_CODE'
19014 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19015 AND l_bflow_method_code = 'PRIOR_ENTRY'
19016 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19017 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19018 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19019 )
19020 THEN
19021 xla_ae_lines_pkg.BflowUpgEntry
19022 (p_business_method_code => l_bflow_method_code
19023 ,p_business_class_code => l_bflow_class_code
19024 ,p_balance_type => l_balance_type_code);
19025 ELSE
19026 NULL;
19027 XLA_AE_LINES_PKG.business_flow_validation(
19028 p_business_method_code => l_bflow_method_code
19029 ,p_business_class_code => l_bflow_class_code
19030 ,p_inherit_description_flag => l_inherit_desc_flag);
19031 END IF;
19032
19033 --
19034 -- call analytical criteria
19035 --
19036 -- Inherited Analytical Criteria for business flow method of Prior Entry.
19037 --
19038 -- call description
19039 --
19040 -- No description or it is inherited.
19041 --
19042 -- call ADRs
19043 -- Bug 4922099
19044 --
19045 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19046 (NVL(l_actual_upg_option, 'N') = 'O') OR
19047 (NVL(l_enc_upg_option, 'N') = 'O')
19048 )
19049 THEN
19050 NULL;
19051 --
19052 --
19053
19054 l_ccid := AcctDerRule_9(
19055 p_application_id => p_application_id
19056 , p_ae_header_id => l_ae_header_id
19057 , p_source_9 => p_source_9
19058 , x_transaction_coa_id => l_adr_transaction_coa_id
19059 , x_accounting_coa_id => l_adr_accounting_coa_id
19060 , x_value_type_code => l_adr_value_type_code
19061 , p_side => 'NA'
19062 );
19063
19064 xla_ae_lines_pkg.set_ccid(
19065 p_code_combination_id => l_ccid
19066 , p_value_type_code => l_adr_value_type_code
19067 , p_transaction_coa_id => l_adr_transaction_coa_id
19068 , p_accounting_coa_id => l_adr_accounting_coa_id
19069 , p_adr_code => 'FV_ACCOUNT_RULE'
19070 , p_adr_type_code => 'S'
19071 , p_component_type => l_component_type
19072 , p_component_code => l_component_code
19073 , p_component_type_code => l_component_type_code
19074 , p_component_appl_id => l_component_appl_id
19075 , p_amb_context_code => l_amb_context_code
19076 , p_side => 'NA'
19077 );
19078
19079
19080 l_segment := AcctDerRule_5(
19081 p_application_id => p_application_id
19082 , p_ae_header_id => l_ae_header_id
19083 , p_source_7 => p_source_7
19084 , p_source_8 => p_source_8
19085 , x_transaction_coa_id => l_adr_transaction_coa_id
19086 , x_accounting_coa_id => l_adr_accounting_coa_id
19087 , x_flexfield_segment_code => l_adr_flexfield_segment_code
19088 , x_flex_value_set_id => l_adr_flex_value_set_id
19089 , x_value_type_code => l_adr_value_type_code
19090 , x_value_combination_id => l_adr_value_combination_id
19091 , x_value_segment_code => l_adr_value_segment_code
19092 , p_side => 'NA'
19093 , p_override_seg_flag => 'Y'
19094 );
19095
19096 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
19097
19098 xla_ae_lines_pkg.set_segment(
19099 p_to_segment_code => 'GL_ACCOUNT'
19100 , p_segment_value => l_segment
19101 , p_from_segment_code => l_adr_value_segment_code
19102 , p_from_combination_id => l_adr_value_combination_id
19103 , p_value_type_code => l_adr_value_type_code
19104 , p_transaction_coa_id => l_adr_transaction_coa_id
19105 , p_accounting_coa_id => l_adr_accounting_coa_id
19106 , p_flexfield_segment_code => l_adr_flexfield_segment_code
19107 , p_flex_value_set_id => l_adr_flex_value_set_id
19108 , p_adr_code => 'FV_46X002'
19109 , p_adr_type_code => 'S'
19110 , p_component_type => l_component_type
19111 , p_component_code => l_component_code
19112 , p_component_type_code => l_component_type_code
19113 , p_component_appl_id => l_component_appl_id
19114 , p_amb_context_code => l_amb_context_code
19115 , p_entity_code => 'PURCHASE_ORDER'
19116 , p_event_class_code => 'PO_PA'
19117 , p_side => 'NA'
19118 );
19119
19120 END IF;
19121
19122 --
19123 --
19124 END IF;
19125 --
19126 -- Bug 4922099
19127 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19128 (NVL(l_enc_upg_option, 'N') = 'O')
19129 ) AND
19130 (l_bflow_method_code = 'PRIOR_ENTRY')
19131 )
19132 THEN
19133 IF
19134 --
19135 1 = 2
19136 --
19137 THEN
19138 xla_accounting_err_pkg.build_message
19139 (p_appli_s_name => 'XLA'
19140 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19141 ,p_token_1 => 'LINE_NUMBER'
19142 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19143 ,p_token_2 => 'LINE_TYPE_NAME'
19144 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19145 l_component_type
19146 ,l_component_code
19147 ,l_component_type_code
19148 ,l_component_appl_id
19149 ,l_amb_context_code
19150 ,l_entity_code
19151 ,l_event_class_code
19152 )
19153 ,p_token_3 => 'OWNER'
19154 ,p_value_3 => xla_lookups_pkg.get_meaning(
19155 p_lookup_type => 'XLA_OWNER_TYPE'
19156 ,p_lookup_code => l_component_type_code
19157 )
19158 ,p_token_4 => 'PRODUCT_NAME'
19159 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19160 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19161 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19165
19162 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19163 ,p_ae_header_id => NULL
19164 );
19166 IF (C_LEVEL_ERROR>= g_log_level) THEN
19167 trace
19168 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19169 ,p_level => C_LEVEL_ERROR
19170 ,p_module => l_log_module);
19171 END IF;
19172 END IF;
19173 END IF;
19174 --
19175 --
19176 ------------------------------------------------------------------------------------------------
19177 -- 4219869 Business Flow
19178 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19179 -- Prior Entry. Currently, the following code is always generated.
19180 ------------------------------------------------------------------------------------------------
19181 -- No ValidateCurrentLine for business flow method of Prior Entry
19182
19183 ------------------------------------------------------------------------------------
19184 -- 4219869 Business Flow
19185 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19186 ------------------------------------------------------------------------------------
19187 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19188
19189 ----------------------------------------------------------------------------------
19190 -- 4219869 Business Flow
19191 -- Update journal entry status -- Need to generate this within IF <condition>
19192 ----------------------------------------------------------------------------------
19193 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19194 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19195 ,p_balance_type_code => l_balance_type_code
19196 );
19197
19198 -------------------------------------------------------------------------------------------
19199 -- 4262811 - Generate the Accrual Reversal lines
19200 -------------------------------------------------------------------------------------------
19201 BEGIN
19202 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19203 (g_array_event(p_event_id).array_value_num('header_index'));
19204 IF l_acc_rev_flag IS NULL THEN
19205 l_acc_rev_flag := 'N';
19206 END IF;
19207 EXCEPTION
19208 WHEN OTHERS THEN
19209 l_acc_rev_flag := 'N';
19210 END;
19211 --
19212 IF (l_acc_rev_flag = 'Y') THEN
19213
19214 -- 4645092 ------------------------------------------------------------------------------
19215 -- To allow MPA report to determine if it should generate report process
19216 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19217 ------------------------------------------------------------------------------------------
19218
19219 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19220 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19221
19222 --
19223 -- Update the line information that should be overwritten
19224 --
19225 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19226 p_header_num => 1);
19227 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19228
19229 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19230
19231 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19232 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19233 END IF;
19234
19235 --
19236 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19237 --
19238 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19239 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19240 ELSE
19241 ---------------------------------------------------------------------------------------------------
19242 -- 4262811a Switch Sign
19243 ---------------------------------------------------------------------------------------------------
19244 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19245 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19246 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19247 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19248 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19249 -- 5132302
19250 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19251 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19252
19253 END IF;
19254
19255 -- 4955764
19256 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19257 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19258
19259
19260 XLA_AE_LINES_PKG.ValidateCurrentLine;
19261 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19262
19263 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19264 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19265 ,p_balance_type_code => l_balance_type_code);
19266
19267 END IF;
19268
19269 -----------------------------------------------------------------------------------------
19270 -- 4262811 Multiperiod Accounting
19271 -----------------------------------------------------------------------------------------
19272 -- No MPA option is assigned.
19273
19274
19275 END IF;
19276 END IF;
19277 --
19278
19279 --
19280 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19281 trace
19282 (p_msg => 'END of AcctLineType_40'
19283 ,p_level => C_LEVEL_PROCEDURE
19284 ,p_module => l_log_module);
19285 END IF;
19286 --
19287 EXCEPTION
19288 WHEN xla_exceptions_pkg.application_exception THEN
19289 RAISE;
19290 WHEN OTHERS THEN
19291 xla_exceptions_pkg.raise_message
19292 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_40');
19293 END AcctLineType_40;
19294 --
19295
19296 ---------------------------------------
19297 --
19298 -- PRIVATE FUNCTION
19299 -- AcctLineType_41
19300 --
19301 ---------------------------------------
19302 PROCEDURE AcctLineType_41 (
19303 p_application_id IN NUMBER
19304 ,p_event_id IN NUMBER
19305 ,p_calculate_acctd_flag IN VARCHAR2
19306 ,p_calculate_g_l_flag IN VARCHAR2
19307 ,p_actual_flag IN OUT VARCHAR2
19308 ,p_balance_type_code OUT VARCHAR2
19309 ,p_gain_or_loss_ref OUT VARCHAR2
19310
19311 --Budget Account
19312 , p_source_9 IN NUMBER
19313 --Federal Prior Year Flag
19314 , p_source_10 IN VARCHAR2
19315 --Main Or Backing Code
19316 , p_source_13 IN VARCHAR2
19317 --Accounting Reversal Flag
19318 , p_source_15 IN VARCHAR2
19319 --Distribution Link Type
19320 , p_source_17 IN VARCHAR2
19321 --PO Distribution Identifier
19322 , p_source_19 IN NUMBER
19323 --PO Header Identifier
19324 , p_source_20 IN NUMBER
19325 --Applied To Application Identifier
19326 , p_source_21 IN NUMBER
19327 --Applied To Distribution Link Type
19328 , p_source_22 IN VARCHAR2
19329 --Applied To Entity Code
19330 , p_source_23 IN VARCHAR2
19331 --Applied To Distribution Identifier 1
19332 , p_source_24 IN NUMBER
19333 --Applied To Header Identifier 1
19334 , p_source_25 IN NUMBER
19335 --Entered Amount
19336 , p_source_26 IN NUMBER
19337 --Currency Code
19338 , p_source_27 IN VARCHAR2
19339 --Accounted Amount
19340 , p_source_28 IN NUMBER
19341 --PO Encumbrance Upgrade Option
19342 , p_source_29 IN VARCHAR2
19343 --JFMIP Reference
19344 , p_source_31 IN VARCHAR2
19345 --PO Upgrade Encumbrance Type Identifier
19346 , p_source_32 IN NUMBER
19347 )
19348 IS
19349
19350 l_component_type VARCHAR2(80);
19351 l_component_code VARCHAR2(30);
19352 l_component_type_code VARCHAR2(1);
19353 l_component_appl_id INTEGER;
19354 l_amb_context_code VARCHAR2(30);
19355 l_entity_code VARCHAR2(30);
19356 l_event_class_code VARCHAR2(30);
19357 l_ae_header_id NUMBER;
19358 l_event_type_code VARCHAR2(30);
19359 l_line_definition_code VARCHAR2(30);
19360 l_line_definition_owner_code VARCHAR2(1);
19361 --
19362 -- adr variables
19363 l_segment VARCHAR2(30);
19364 l_ccid NUMBER;
19365 l_adr_transaction_coa_id NUMBER;
19366 l_adr_accounting_coa_id NUMBER;
19367 l_adr_flexfield_segment_code VARCHAR2(30);
19368 l_adr_flex_value_set_id NUMBER;
19369 l_adr_value_type_code VARCHAR2(30);
19370 l_adr_value_combination_id NUMBER;
19371 l_adr_value_segment_code VARCHAR2(30);
19372
19373 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19374 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19375 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19376 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19377
19378 -- 4262811 Variables ------------------------------------------------------------------------------------------
19379 l_entered_amt_idx NUMBER;
19380 l_accted_amt_idx NUMBER;
19381 l_acc_rev_flag VARCHAR2(1);
19382 l_accrual_line_num NUMBER;
19383 l_tmp_amt NUMBER;
19384 l_acc_rev_natural_side_code VARCHAR2(1);
19385
19386 l_num_entries NUMBER;
19387 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19388 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19389 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19390 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19391 l_recog_line_1 NUMBER;
19392 l_recog_line_2 NUMBER;
19393
19394 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19395 l_bflow_applied_to_amt NUMBER; -- 5132302
19396 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19397
19398 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19399
19400 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19401 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19402
19403 ---------------------------------------------------------------------------------------------------------------
19404
19405
19406 --
19407 -- bulk performance
19408 --
19409 l_balance_type_code VARCHAR2(1);
19410 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19411 l_log_module VARCHAR2(240);
19412
19413 --
19414 -- Upgrade strategy
19415 --
19416 l_actual_upg_option VARCHAR2(1);
19417 l_enc_upg_option VARCHAR2(1);
19418
19419 --
19420 BEGIN
19421 --
19422 IF g_log_enabled THEN
19423 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
19424 END IF;
19425 --
19426 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19427
19428 trace
19429 (p_msg => 'BEGIN of AcctLineType_41'
19430 ,p_level => C_LEVEL_PROCEDURE
19431 ,p_module => l_log_module);
19432
19433 END IF;
19434 --
19435 l_component_type := 'AMB_JLT';
19436 l_component_code := 'FV_PO_UNRESERVE_DR';
19437 l_component_type_code := 'S';
19438 l_component_appl_id := 201;
19439 l_amb_context_code := 'DEFAULT';
19440 l_entity_code := 'PURCHASE_ORDER';
19441 l_event_class_code := 'PO_PA';
19442 l_event_type_code := 'PO_PA_ALL';
19443 l_line_definition_owner_code := 'S';
19444 l_line_definition_code := 'FV_PO_ALL';
19445 --
19446 l_balance_type_code := 'A';
19447 l_segment := NULL;
19448 l_ccid := NULL;
19449 l_adr_transaction_coa_id := NULL;
19450 l_adr_accounting_coa_id := NULL;
19451 l_adr_flexfield_segment_code := NULL;
19452 l_adr_flex_value_set_id := NULL;
19453 l_adr_value_type_code := NULL;
19454 l_adr_value_combination_id := NULL;
19455 l_adr_value_segment_code := NULL;
19456
19457 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
19458 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
19459 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
19460 l_budgetary_control_flag := 'Y';
19461
19462 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19463 l_bflow_applied_to_amt := NULL; -- 5132302
19464 l_entered_amt_idx := NULL; -- 4262811
19465 l_accted_amt_idx := NULL; -- 4262811
19466 l_acc_rev_flag := NULL; -- 4262811
19467 l_accrual_line_num := NULL; -- 4262811
19468 l_tmp_amt := NULL; -- 4262811
19469 --
19470
19471 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19472 l_balance_type_code <> 'B' THEN
19473 IF (NVL(
19474 xla_ae_sources_pkg.GetSystemSourceChar(
19475 p_source_code => 'XLA_EVENT_TYPE_CODE'
19476 , p_source_type_code => 'Y'
19477 , p_source_application_id => 602
19478 ),'
19479 ') = 'PO_PA_UNRESERVED' OR
19480 NVL(
19481 xla_ae_sources_pkg.GetSystemSourceChar(
19482 p_source_code => 'XLA_EVENT_TYPE_CODE'
19483 , p_source_type_code => 'Y'
19484 , p_source_application_id => 602
19485 ),'
19486 ') = 'PO_PA_REJECTED' OR
19487 NVL(
19488 xla_ae_sources_pkg.GetSystemSourceChar(
19489 p_source_code => 'XLA_EVENT_TYPE_CODE'
19490 , p_source_type_code => 'Y'
19491 , p_source_application_id => 602
19492 ),'
19493 ') = 'PO_PA_INV_CANCELLED' OR
19494 (NVL(
19495 xla_ae_sources_pkg.GetSystemSourceChar(
19496 p_source_code => 'XLA_EVENT_TYPE_CODE'
19497 , p_source_type_code => 'Y'
19498 , p_source_application_id => 602
19499 ),'
19500 ') = 'PO_PA_FINAL_CLOSED' AND
19501 NVL(p_source_10,'
19502 ') <> 'Y')
19503 ) AND NVL(p_source_13,'
19504 ') = 'M' AND
19505 (NVL(p_source_17,'
19506 ') <> 'AGREEMENT' OR
19507 p_source_17 IS NULL )
19508 THEN
19509
19510 --
19511 XLA_AE_LINES_PKG.SetNewLine;
19512
19513 p_balance_type_code := l_balance_type_code;
19514 -- set the flag so later we will know whether the gain loss line needs to be created
19515
19516 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19517 p_actual_flag :='A';
19518 END IF;
19519
19520 --
19521 -- bulk performance
19522 --
19523 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19524 p_header_num => 0); -- 4262811
19525 --
19526 -- set accounting line options
19527 --
19528 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19529 p_natural_side_code => 'D'
19530 , p_gain_or_loss_flag => 'N'
19531 , p_gl_transfer_mode_code => 'S'
19532 , p_acct_entry_type_code => 'A'
19533 , p_switch_side_flag => 'N'
19534 , p_merge_duplicate_code => 'N'
19535 );
19536 --
19537 l_acc_rev_natural_side_code := 'C'; -- 4262811
19538 --
19539 --
19540 -- set accounting line type info
19541 --
19542 xla_ae_lines_pkg.SetAcctLineType
19543 (p_component_type => l_component_type
19544 ,p_event_type_code => l_event_type_code
19545 ,p_line_definition_owner_code => l_line_definition_owner_code
19546 ,p_line_definition_code => l_line_definition_code
19547 ,p_accounting_line_code => l_component_code
19548 ,p_accounting_line_type_code => l_component_type_code
19549 ,p_accounting_line_appl_id => l_component_appl_id
19550 ,p_amb_context_code => l_amb_context_code
19551 ,p_entity_code => l_entity_code
19552 ,p_event_class_code => l_event_class_code);
19553 --
19554 -- set accounting class
19555 --
19556 xla_ae_lines_pkg.SetAcctClass(
19557 p_accounting_class_code => 'PURCHASE_ORDER'
19558 , p_ae_header_id => l_ae_header_id
19559 );
19560
19561 --
19562 -- set rounding class
19563 --
19564 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19565 'PURCHASE_ORDER';
19566
19567 --
19568 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19569 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19570 --
19571 -- bulk performance
19572 --
19573 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19574
19575 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19576 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19577
19578 -- 4955764
19579 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19580 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19581
19582 -- 4458381 Public Sector Enh
19583
19584 --
19585 -- set accounting attributes for the line type
19586 --
19587 l_entered_amt_idx := 23;
19588 l_accted_amt_idx := 25;
19589 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19590 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19591 l_rec_acct_attrs.array_char_value(1) := p_source_15;
19592 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
19593 l_rec_acct_attrs.array_num_value(2) :=
19594 xla_ae_sources_pkg.GetSystemSourceNum(
19595 p_source_code => 'XLA_EVENT_APPL_ID'
19596 , p_source_type_code => 'Y'
19597 , p_source_application_id => 602
19598 );
19599 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
19600 l_rec_acct_attrs.array_char_value(3) := p_source_17;
19601 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
19602 l_rec_acct_attrs.array_char_value(4) :=
19603 xla_ae_sources_pkg.GetSystemSourceChar(
19604 p_source_code => 'XLA_ENTITY_CODE'
19605 , p_source_type_code => 'Y'
19606 , p_source_application_id => 602
19607 );
19608 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
19609 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
19610 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
19611 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
19612 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
19613 l_rec_acct_attrs.array_num_value(7) := p_source_21;
19614 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19615 l_rec_acct_attrs.array_char_value(8) := p_source_22;
19616 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
19617 l_rec_acct_attrs.array_char_value(9) := p_source_23;
19618 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
19619 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
19620 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19621 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
19622 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
19623 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
19624 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
19625 l_rec_acct_attrs.array_char_value(13) := p_source_17;
19626 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
19627 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
19628 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
19629 l_rec_acct_attrs.array_num_value(15) := p_source_26;
19630 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
19631 l_rec_acct_attrs.array_char_value(16) := p_source_27;
19632 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
19633 l_rec_acct_attrs.array_num_value(17) := p_source_28;
19634 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
19635 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
19636 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
19637 l_rec_acct_attrs.array_num_value(19) := p_source_26;
19638 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
19639 l_rec_acct_attrs.array_char_value(20) := p_source_27;
19640 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
19641 l_rec_acct_attrs.array_num_value(21) := p_source_28;
19642 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
19643 l_rec_acct_attrs.array_char_value(22) := p_source_29;
19644 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
19645 l_rec_acct_attrs.array_num_value(23) := p_source_26;
19646 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
19647 l_rec_acct_attrs.array_char_value(24) := p_source_27;
19648 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
19649 l_rec_acct_attrs.array_num_value(25) := p_source_28;
19650 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
19651 l_rec_acct_attrs.array_char_value(26) := p_source_31;
19652 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
19653 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
19654 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
19655 l_rec_acct_attrs.array_char_value(28) := p_source_22;
19656 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
19657 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
19658 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
19659 l_rec_acct_attrs.array_num_value(30) := p_source_32;
19660 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
19661 l_rec_acct_attrs.array_num_value(31) := p_source_32;
19662
19663 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19664 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19665
19666 ---------------------------------------------------------------------------------------------------------------
19667 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19668 ---------------------------------------------------------------------------------------------------------------
19669 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19670
19671 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19672 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19673
19674 IF xla_accounting_cache_pkg.GetValueChar
19675 (p_source_code => 'LEDGER_CATEGORY_CODE'
19676 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19677 AND l_bflow_method_code = 'PRIOR_ENTRY'
19678 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19679 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19680 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19681 )
19682 THEN
19683 xla_ae_lines_pkg.BflowUpgEntry
19684 (p_business_method_code => l_bflow_method_code
19685 ,p_business_class_code => l_bflow_class_code
19686 ,p_balance_type => l_balance_type_code);
19687 ELSE
19688 NULL;
19689 XLA_AE_LINES_PKG.business_flow_validation(
19690 p_business_method_code => l_bflow_method_code
19691 ,p_business_class_code => l_bflow_class_code
19692 ,p_inherit_description_flag => l_inherit_desc_flag);
19693 END IF;
19694
19695 --
19696 -- call analytical criteria
19697 --
19698 -- Inherited Analytical Criteria for business flow method of Prior Entry.
19699 --
19700 -- call description
19701 --
19702 -- No description or it is inherited.
19703 --
19704 -- call ADRs
19705 -- Bug 4922099
19706 --
19707 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19708 (NVL(l_actual_upg_option, 'N') = 'O') OR
19709 (NVL(l_enc_upg_option, 'N') = 'O')
19710 )
19711 THEN
19712 NULL;
19713 --
19714 --
19718 , p_ae_header_id => l_ae_header_id
19715
19716 l_ccid := AcctDerRule_9(
19717 p_application_id => p_application_id
19719 , p_source_9 => p_source_9
19720 , x_transaction_coa_id => l_adr_transaction_coa_id
19721 , x_accounting_coa_id => l_adr_accounting_coa_id
19722 , x_value_type_code => l_adr_value_type_code
19723 , p_side => 'NA'
19724 );
19725
19726 xla_ae_lines_pkg.set_ccid(
19727 p_code_combination_id => l_ccid
19728 , p_value_type_code => l_adr_value_type_code
19729 , p_transaction_coa_id => l_adr_transaction_coa_id
19730 , p_accounting_coa_id => l_adr_accounting_coa_id
19731 , p_adr_code => 'FV_ACCOUNT_RULE'
19732 , p_adr_type_code => 'S'
19733 , p_component_type => l_component_type
19734 , p_component_code => l_component_code
19735 , p_component_type_code => l_component_type_code
19736 , p_component_appl_id => l_component_appl_id
19737 , p_amb_context_code => l_amb_context_code
19738 , p_side => 'NA'
19739 );
19740
19741
19742 l_segment := AcctDerRule_8(
19743 p_application_id => p_application_id
19744 , p_ae_header_id => l_ae_header_id
19745 , x_transaction_coa_id => l_adr_transaction_coa_id
19746 , x_accounting_coa_id => l_adr_accounting_coa_id
19747 , x_flexfield_segment_code => l_adr_flexfield_segment_code
19748 , x_flex_value_set_id => l_adr_flex_value_set_id
19749 , x_value_type_code => l_adr_value_type_code
19750 , x_value_combination_id => l_adr_value_combination_id
19751 , x_value_segment_code => l_adr_value_segment_code
19752 , p_side => 'NA'
19753 , p_override_seg_flag => 'Y'
19754 );
19755
19756 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
19757
19758 xla_ae_lines_pkg.set_segment(
19759 p_to_segment_code => 'GL_ACCOUNT'
19760 , p_segment_value => l_segment
19761 , p_from_segment_code => l_adr_value_segment_code
19762 , p_from_combination_id => l_adr_value_combination_id
19763 , p_value_type_code => l_adr_value_type_code
19764 , p_transaction_coa_id => l_adr_transaction_coa_id
19765 , p_accounting_coa_id => l_adr_accounting_coa_id
19766 , p_flexfield_segment_code => l_adr_flexfield_segment_code
19767 , p_flex_value_set_id => l_adr_flex_value_set_id
19768 , p_adr_code => 'FV_48X101_PURCHASING'
19769 , p_adr_type_code => 'S'
19770 , p_component_type => l_component_type
19771 , p_component_code => l_component_code
19772 , p_component_type_code => l_component_type_code
19773 , p_component_appl_id => l_component_appl_id
19774 , p_amb_context_code => l_amb_context_code
19775 , p_entity_code => 'PURCHASE_ORDER'
19776 , p_event_class_code => 'PO_PA'
19777 , p_side => 'NA'
19778 );
19779
19780 END IF;
19781
19782 --
19783 --
19784 END IF;
19785 --
19786 -- Bug 4922099
19787 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19788 (NVL(l_enc_upg_option, 'N') = 'O')
19789 ) AND
19790 (l_bflow_method_code = 'PRIOR_ENTRY')
19791 )
19792 THEN
19793 IF
19794 --
19795 1 = 2
19796 --
19797 THEN
19798 xla_accounting_err_pkg.build_message
19799 (p_appli_s_name => 'XLA'
19800 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19801 ,p_token_1 => 'LINE_NUMBER'
19802 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19803 ,p_token_2 => 'LINE_TYPE_NAME'
19804 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19805 l_component_type
19806 ,l_component_code
19807 ,l_component_type_code
19808 ,l_component_appl_id
19809 ,l_amb_context_code
19810 ,l_entity_code
19811 ,l_event_class_code
19812 )
19813 ,p_token_3 => 'OWNER'
19814 ,p_value_3 => xla_lookups_pkg.get_meaning(
19815 p_lookup_type => 'XLA_OWNER_TYPE'
19816 ,p_lookup_code => l_component_type_code
19817 )
19818 ,p_token_4 => 'PRODUCT_NAME'
19819 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19820 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19821 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19822 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19823 ,p_ae_header_id => NULL
19824 );
19825
19826 IF (C_LEVEL_ERROR>= g_log_level) THEN
19827 trace
19828 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19829 ,p_level => C_LEVEL_ERROR
19830 ,p_module => l_log_module);
19831 END IF;
19832 END IF;
19833 END IF;
19834 --
19835 --
19836 ------------------------------------------------------------------------------------------------
19837 -- 4219869 Business Flow
19838 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19839 -- Prior Entry. Currently, the following code is always generated.
19840 ------------------------------------------------------------------------------------------------
19841 -- No ValidateCurrentLine for business flow method of Prior Entry
19842
19843 ------------------------------------------------------------------------------------
19844 -- 4219869 Business Flow
19845 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19846 ------------------------------------------------------------------------------------
19847 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19848
19849 ----------------------------------------------------------------------------------
19850 -- 4219869 Business Flow
19851 -- Update journal entry status -- Need to generate this within IF <condition>
19852 ----------------------------------------------------------------------------------
19853 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19854 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19855 ,p_balance_type_code => l_balance_type_code
19856 );
19857
19858 -------------------------------------------------------------------------------------------
19859 -- 4262811 - Generate the Accrual Reversal lines
19860 -------------------------------------------------------------------------------------------
19861 BEGIN
19862 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19863 (g_array_event(p_event_id).array_value_num('header_index'));
19864 IF l_acc_rev_flag IS NULL THEN
19865 l_acc_rev_flag := 'N';
19866 END IF;
19867 EXCEPTION
19868 WHEN OTHERS THEN
19869 l_acc_rev_flag := 'N';
19870 END;
19871 --
19872 IF (l_acc_rev_flag = 'Y') THEN
19873
19874 -- 4645092 ------------------------------------------------------------------------------
19875 -- To allow MPA report to determine if it should generate report process
19876 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19877 ------------------------------------------------------------------------------------------
19878
19879 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19880 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19881
19882 --
19883 -- Update the line information that should be overwritten
19884 --
19885 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19886 p_header_num => 1);
19887 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19888
19889 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19890
19891 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19892 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19893 END IF;
19894
19895 --
19896 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19897 --
19898 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19899 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19900 ELSE
19901 ---------------------------------------------------------------------------------------------------
19902 -- 4262811a Switch Sign
19903 ---------------------------------------------------------------------------------------------------
19904 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19905 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19906 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19907 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19908 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19909 -- 5132302
19910 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19911 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19912
19913 END IF;
19914
19915 -- 4955764
19916 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19917 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19918
19919
19920 XLA_AE_LINES_PKG.ValidateCurrentLine;
19921 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19922
19923 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19924 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19928
19925 ,p_balance_type_code => l_balance_type_code);
19926
19927 END IF;
19929 -----------------------------------------------------------------------------------------
19930 -- 4262811 Multiperiod Accounting
19931 -----------------------------------------------------------------------------------------
19932 -- No MPA option is assigned.
19933
19934
19935 END IF;
19936 END IF;
19937 --
19938
19939 --
19940 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19941 trace
19942 (p_msg => 'END of AcctLineType_41'
19943 ,p_level => C_LEVEL_PROCEDURE
19944 ,p_module => l_log_module);
19945 END IF;
19946 --
19947 EXCEPTION
19948 WHEN xla_exceptions_pkg.application_exception THEN
19949 RAISE;
19950 WHEN OTHERS THEN
19951 xla_exceptions_pkg.raise_message
19952 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_41');
19953 END AcctLineType_41;
19954 --
19955
19956 ---------------------------------------
19957 --
19958 -- PRIVATE FUNCTION
19959 -- AcctLineType_42
19960 --
19961 ---------------------------------------
19962 PROCEDURE AcctLineType_42 (
19963 p_application_id IN NUMBER
19964 ,p_event_id IN NUMBER
19965 ,p_calculate_acctd_flag IN VARCHAR2
19966 ,p_calculate_g_l_flag IN VARCHAR2
19967 ,p_actual_flag IN OUT VARCHAR2
19968 ,p_balance_type_code OUT VARCHAR2
19969 ,p_gain_or_loss_ref OUT VARCHAR2
19970
19971 --Budget Account
19972 , p_source_9 IN NUMBER
19973 --Main Or Backing Code
19974 , p_source_13 IN VARCHAR2
19975 --Accounting Reversal Flag
19976 , p_source_15 IN VARCHAR2
19977 --Distribution Link Type
19978 , p_source_17 IN VARCHAR2
19979 --PO Distribution Identifier
19980 , p_source_19 IN NUMBER
19981 --PO Header Identifier
19982 , p_source_20 IN NUMBER
19983 --Applied To Application Identifier
19984 , p_source_21 IN NUMBER
19985 --Applied To Distribution Link Type
19986 , p_source_22 IN VARCHAR2
19987 --Applied To Entity Code
19988 , p_source_23 IN VARCHAR2
19989 --Applied To Distribution Identifier 1
19990 , p_source_24 IN NUMBER
19991 --Applied To Header Identifier 1
19992 , p_source_25 IN NUMBER
19993 --Entered Amount
19994 , p_source_26 IN NUMBER
19995 --Currency Code
19996 , p_source_27 IN VARCHAR2
19997 --Accounted Amount
19998 , p_source_28 IN NUMBER
19999 --PO Encumbrance Upgrade Option
20000 , p_source_29 IN VARCHAR2
20001 --JFMIP Reference
20002 , p_source_31 IN VARCHAR2
20003 --PO Upgrade Encumbrance Type Identifier
20004 , p_source_32 IN NUMBER
20005 --Allocated to Main Document Distribution Type
20006 , p_source_33 IN VARCHAR2
20007 --Allocated to Main Document Distribution Identifier
20008 , p_source_34 IN NUMBER
20009 )
20010 IS
20011
20012 l_component_type VARCHAR2(80);
20013 l_component_code VARCHAR2(30);
20014 l_component_type_code VARCHAR2(1);
20015 l_component_appl_id INTEGER;
20016 l_amb_context_code VARCHAR2(30);
20017 l_entity_code VARCHAR2(30);
20018 l_event_class_code VARCHAR2(30);
20019 l_ae_header_id NUMBER;
20020 l_event_type_code VARCHAR2(30);
20021 l_line_definition_code VARCHAR2(30);
20022 l_line_definition_owner_code VARCHAR2(1);
20023 --
20024 -- adr variables
20025 l_segment VARCHAR2(30);
20026 l_ccid NUMBER;
20027 l_adr_transaction_coa_id NUMBER;
20028 l_adr_accounting_coa_id NUMBER;
20029 l_adr_flexfield_segment_code VARCHAR2(30);
20030 l_adr_flex_value_set_id NUMBER;
20031 l_adr_value_type_code VARCHAR2(30);
20032 l_adr_value_combination_id NUMBER;
20033 l_adr_value_segment_code VARCHAR2(30);
20034
20035 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20036 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20037 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20038 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20039
20040 -- 4262811 Variables ------------------------------------------------------------------------------------------
20041 l_entered_amt_idx NUMBER;
20042 l_accted_amt_idx NUMBER;
20043 l_acc_rev_flag VARCHAR2(1);
20044 l_accrual_line_num NUMBER;
20045 l_tmp_amt NUMBER;
20046 l_acc_rev_natural_side_code VARCHAR2(1);
20047
20048 l_num_entries NUMBER;
20049 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20050 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20051 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20052 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20053 l_recog_line_1 NUMBER;
20054 l_recog_line_2 NUMBER;
20055
20056 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20057 l_bflow_applied_to_amt NUMBER; -- 5132302
20058 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20059
20060 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20061
20065 ---------------------------------------------------------------------------------------------------------------
20062 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20063 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20064
20066
20067
20068 --
20069 -- bulk performance
20070 --
20071 l_balance_type_code VARCHAR2(1);
20072 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20073 l_log_module VARCHAR2(240);
20074
20075 --
20076 -- Upgrade strategy
20077 --
20078 l_actual_upg_option VARCHAR2(1);
20079 l_enc_upg_option VARCHAR2(1);
20080
20081 --
20082 BEGIN
20083 --
20084 IF g_log_enabled THEN
20085 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
20086 END IF;
20087 --
20088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20089
20090 trace
20091 (p_msg => 'BEGIN of AcctLineType_42'
20092 ,p_level => C_LEVEL_PROCEDURE
20093 ,p_module => l_log_module);
20094
20095 END IF;
20096 --
20097 l_component_type := 'AMB_JLT';
20098 l_component_code := 'FV_REINSTATE_BPA_PO_REVERSE_CR';
20099 l_component_type_code := 'S';
20100 l_component_appl_id := 201;
20101 l_amb_context_code := 'DEFAULT';
20102 l_entity_code := 'PURCHASE_ORDER';
20103 l_event_class_code := 'PO_PA';
20104 l_event_type_code := 'PO_PA_ALL';
20105 l_line_definition_owner_code := 'S';
20106 l_line_definition_code := 'FV_PO_ALL';
20107 --
20108 l_balance_type_code := 'A';
20109 l_segment := NULL;
20110 l_ccid := NULL;
20111 l_adr_transaction_coa_id := NULL;
20112 l_adr_accounting_coa_id := NULL;
20113 l_adr_flexfield_segment_code := NULL;
20114 l_adr_flex_value_set_id := NULL;
20115 l_adr_value_type_code := NULL;
20116 l_adr_value_combination_id := NULL;
20117 l_adr_value_segment_code := NULL;
20118
20119 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
20120 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
20121 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
20122 l_budgetary_control_flag := 'Y';
20123
20124 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20125 l_bflow_applied_to_amt := NULL; -- 5132302
20126 l_entered_amt_idx := NULL; -- 4262811
20127 l_accted_amt_idx := NULL; -- 4262811
20128 l_acc_rev_flag := NULL; -- 4262811
20129 l_accrual_line_num := NULL; -- 4262811
20130 l_tmp_amt := NULL; -- 4262811
20131 --
20132
20133 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20134 l_balance_type_code <> 'B' THEN
20135 IF (NVL(
20136 xla_ae_sources_pkg.GetSystemSourceChar(
20137 p_source_code => 'XLA_EVENT_TYPE_CODE'
20138 , p_source_type_code => 'Y'
20139 , p_source_application_id => 602
20140 ),'
20141 ') = 'PO_PA_CANCELLED' OR
20142 NVL(
20143 xla_ae_sources_pkg.GetSystemSourceChar(
20144 p_source_code => 'XLA_EVENT_TYPE_CODE'
20145 , p_source_type_code => 'Y'
20146 , p_source_application_id => 602
20147 ),'
20148 ') = 'PO_PA_CR_MEMO_CANCELLED') AND
20149 NVL(p_source_13,'
20150 ') = 'B_PA'
20151 THEN
20152
20153 --
20154 XLA_AE_LINES_PKG.SetNewLine;
20155
20156 p_balance_type_code := l_balance_type_code;
20157 -- set the flag so later we will know whether the gain loss line needs to be created
20158
20159 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20160 p_actual_flag :='A';
20161 END IF;
20162
20163 --
20164 -- bulk performance
20165 --
20166 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20167 p_header_num => 0); -- 4262811
20168 --
20169 -- set accounting line options
20170 --
20171 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20172 p_natural_side_code => 'C'
20173 , p_gain_or_loss_flag => 'N'
20174 , p_gl_transfer_mode_code => 'S'
20175 , p_acct_entry_type_code => 'A'
20176 , p_switch_side_flag => 'N'
20177 , p_merge_duplicate_code => 'N'
20178 );
20179 --
20180 l_acc_rev_natural_side_code := 'D'; -- 4262811
20181 --
20182 --
20183 -- set accounting line type info
20184 --
20185 xla_ae_lines_pkg.SetAcctLineType
20186 (p_component_type => l_component_type
20187 ,p_event_type_code => l_event_type_code
20188 ,p_line_definition_owner_code => l_line_definition_owner_code
20189 ,p_line_definition_code => l_line_definition_code
20190 ,p_accounting_line_code => l_component_code
20191 ,p_accounting_line_type_code => l_component_type_code
20192 ,p_accounting_line_appl_id => l_component_appl_id
20193 ,p_amb_context_code => l_amb_context_code
20194 ,p_entity_code => l_entity_code
20195 ,p_event_class_code => l_event_class_code);
20196 --
20197 -- set accounting class
20198 --
20199 xla_ae_lines_pkg.SetAcctClass(
20200 p_accounting_class_code => 'REQUISITION'
20201 , p_ae_header_id => l_ae_header_id
20202 );
20203
20204 --
20205 -- set rounding class
20206 --
20207 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20208 'REQUISITION';
20209
20210 --
20211 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20212 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20213 --
20214 -- bulk performance
20215 --
20216 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20217
20218 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20219 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20220
20221 -- 4955764
20222 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20223 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20224
20225 -- 4458381 Public Sector Enh
20226
20227 --
20228 -- set accounting attributes for the line type
20229 --
20230 l_entered_amt_idx := 23;
20231 l_accted_amt_idx := 25;
20232 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20233 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20234 l_rec_acct_attrs.array_char_value(1) := p_source_15;
20235 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
20236 l_rec_acct_attrs.array_num_value(2) :=
20237 xla_ae_sources_pkg.GetSystemSourceNum(
20238 p_source_code => 'XLA_EVENT_APPL_ID'
20239 , p_source_type_code => 'Y'
20240 , p_source_application_id => 602
20241 );
20242 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
20243 l_rec_acct_attrs.array_char_value(3) := p_source_33;
20244 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
20245 l_rec_acct_attrs.array_char_value(4) :=
20246 xla_ae_sources_pkg.GetSystemSourceChar(
20247 p_source_code => 'XLA_ENTITY_CODE'
20248 , p_source_type_code => 'Y'
20249 , p_source_application_id => 602
20250 );
20251 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
20252 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
20253 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
20254 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
20255 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
20256 l_rec_acct_attrs.array_num_value(7) := p_source_21;
20257 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20258 l_rec_acct_attrs.array_char_value(8) := p_source_22;
20259 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
20260 l_rec_acct_attrs.array_char_value(9) := p_source_23;
20261 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
20262 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
20263 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20264 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
20265 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
20266 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
20267 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
20268 l_rec_acct_attrs.array_char_value(13) := p_source_17;
20269 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
20270 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
20271 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
20272 l_rec_acct_attrs.array_num_value(15) := p_source_26;
20276 l_rec_acct_attrs.array_num_value(17) := p_source_28;
20273 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
20274 l_rec_acct_attrs.array_char_value(16) := p_source_27;
20275 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
20277 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
20278 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
20279 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
20280 l_rec_acct_attrs.array_num_value(19) := p_source_26;
20281 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
20282 l_rec_acct_attrs.array_char_value(20) := p_source_27;
20283 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
20284 l_rec_acct_attrs.array_num_value(21) := p_source_28;
20285 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
20286 l_rec_acct_attrs.array_char_value(22) := p_source_29;
20287 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
20288 l_rec_acct_attrs.array_num_value(23) := p_source_26;
20289 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
20290 l_rec_acct_attrs.array_char_value(24) := p_source_27;
20291 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
20292 l_rec_acct_attrs.array_num_value(25) := p_source_28;
20293 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
20294 l_rec_acct_attrs.array_char_value(26) := p_source_31;
20295 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
20296 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
20297 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
20298 l_rec_acct_attrs.array_char_value(28) := p_source_22;
20299 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
20300 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
20301 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
20302 l_rec_acct_attrs.array_num_value(30) := p_source_32;
20303 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
20304 l_rec_acct_attrs.array_num_value(31) := p_source_32;
20305
20306 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20307 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20308
20309 ---------------------------------------------------------------------------------------------------------------
20310 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20311 ---------------------------------------------------------------------------------------------------------------
20312 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20313
20314 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20315 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20316
20317 IF xla_accounting_cache_pkg.GetValueChar
20318 (p_source_code => 'LEDGER_CATEGORY_CODE'
20319 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20320 AND l_bflow_method_code = 'PRIOR_ENTRY'
20321 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20322 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20323 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20324 )
20325 THEN
20326 xla_ae_lines_pkg.BflowUpgEntry
20327 (p_business_method_code => l_bflow_method_code
20328 ,p_business_class_code => l_bflow_class_code
20329 ,p_balance_type => l_balance_type_code);
20330 ELSE
20331 NULL;
20332 XLA_AE_LINES_PKG.business_flow_validation(
20333 p_business_method_code => l_bflow_method_code
20334 ,p_business_class_code => l_bflow_class_code
20335 ,p_inherit_description_flag => l_inherit_desc_flag);
20336 END IF;
20337
20338 --
20339 -- call analytical criteria
20340 --
20341 -- Inherited Analytical Criteria for business flow method of Prior Entry.
20342 --
20343 -- call description
20344 --
20345 -- No description or it is inherited.
20346 --
20347 -- call ADRs
20348 -- Bug 4922099
20349 --
20350 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20351 (NVL(l_actual_upg_option, 'N') = 'O') OR
20352 (NVL(l_enc_upg_option, 'N') = 'O')
20353 )
20354 THEN
20355 NULL;
20356 --
20357 --
20358
20359 --
20360 --
20361 END IF;
20362 --
20363 -- Bug 4922099
20364 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20365 (NVL(l_enc_upg_option, 'N') = 'O')
20366 ) AND
20367 (l_bflow_method_code = 'PRIOR_ENTRY')
20368 )
20369 THEN
20370 IF
20371 --
20372 1 = 1
20373 --
20374 THEN
20375 xla_accounting_err_pkg.build_message
20376 (p_appli_s_name => 'XLA'
20377 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20378 ,p_token_1 => 'LINE_NUMBER'
20379 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20380 ,p_token_2 => 'LINE_TYPE_NAME'
20381 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20382 l_component_type
20383 ,l_component_code
20384 ,l_component_type_code
20385 ,l_component_appl_id
20386 ,l_amb_context_code
20387 ,l_entity_code
20388 ,l_event_class_code
20389 )
20390 ,p_token_3 => 'OWNER'
20391 ,p_value_3 => xla_lookups_pkg.get_meaning(
20392 p_lookup_type => 'XLA_OWNER_TYPE'
20393 ,p_lookup_code => l_component_type_code
20394 )
20395 ,p_token_4 => 'PRODUCT_NAME'
20396 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20397 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20398 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20399 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20400 ,p_ae_header_id => NULL
20401 );
20402
20403 IF (C_LEVEL_ERROR>= g_log_level) THEN
20404 trace
20405 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20406 ,p_level => C_LEVEL_ERROR
20407 ,p_module => l_log_module);
20408 END IF;
20409 END IF;
20410 END IF;
20411 --
20412 --
20413 ------------------------------------------------------------------------------------------------
20414 -- 4219869 Business Flow
20415 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20416 -- Prior Entry. Currently, the following code is always generated.
20417 ------------------------------------------------------------------------------------------------
20418 -- No ValidateCurrentLine for business flow method of Prior Entry
20419
20420 ------------------------------------------------------------------------------------
20421 -- 4219869 Business Flow
20422 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20423 ------------------------------------------------------------------------------------
20424 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20425
20426 ----------------------------------------------------------------------------------
20427 -- 4219869 Business Flow
20428 -- Update journal entry status -- Need to generate this within IF <condition>
20429 ----------------------------------------------------------------------------------
20430 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20431 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20432 ,p_balance_type_code => l_balance_type_code
20433 );
20434
20435 -------------------------------------------------------------------------------------------
20436 -- 4262811 - Generate the Accrual Reversal lines
20437 -------------------------------------------------------------------------------------------
20438 BEGIN
20439 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20440 (g_array_event(p_event_id).array_value_num('header_index'));
20441 IF l_acc_rev_flag IS NULL THEN
20442 l_acc_rev_flag := 'N';
20443 END IF;
20444 EXCEPTION
20445 WHEN OTHERS THEN
20446 l_acc_rev_flag := 'N';
20447 END;
20448 --
20449 IF (l_acc_rev_flag = 'Y') THEN
20450
20451 -- 4645092 ------------------------------------------------------------------------------
20452 -- To allow MPA report to determine if it should generate report process
20453 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20457 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20454 ------------------------------------------------------------------------------------------
20455
20456 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20458
20459 --
20460 -- Update the line information that should be overwritten
20461 --
20462 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20463 p_header_num => 1);
20464 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20465
20466 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20467
20468 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20469 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20470 END IF;
20471
20472 --
20473 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20474 --
20475 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20476 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20477 ELSE
20478 ---------------------------------------------------------------------------------------------------
20479 -- 4262811a Switch Sign
20480 ---------------------------------------------------------------------------------------------------
20481 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20482 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20483 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20484 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20485 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20486 -- 5132302
20487 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20488 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20489
20490 END IF;
20491
20492 -- 4955764
20493 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20494 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20495
20496
20497 XLA_AE_LINES_PKG.ValidateCurrentLine;
20498 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20499
20500 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20501 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20502 ,p_balance_type_code => l_balance_type_code);
20503
20504 END IF;
20505
20506 -----------------------------------------------------------------------------------------
20507 -- 4262811 Multiperiod Accounting
20508 -----------------------------------------------------------------------------------------
20509 -- No MPA option is assigned.
20510
20511
20512 END IF;
20513 END IF;
20514 --
20515
20516 --
20517 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20518 trace
20519 (p_msg => 'END of AcctLineType_42'
20520 ,p_level => C_LEVEL_PROCEDURE
20521 ,p_module => l_log_module);
20522 END IF;
20523 --
20524 EXCEPTION
20525 WHEN xla_exceptions_pkg.application_exception THEN
20526 RAISE;
20527 WHEN OTHERS THEN
20528 xla_exceptions_pkg.raise_message
20529 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_42');
20530 END AcctLineType_42;
20531 --
20532
20533 ---------------------------------------
20534 --
20535 -- PRIVATE FUNCTION
20536 -- AcctLineType_43
20537 --
20538 ---------------------------------------
20539 PROCEDURE AcctLineType_43 (
20540 p_application_id IN NUMBER
20541 ,p_event_id IN NUMBER
20542 ,p_calculate_acctd_flag IN VARCHAR2
20543 ,p_calculate_g_l_flag IN VARCHAR2
20544 ,p_actual_flag IN OUT VARCHAR2
20545 ,p_balance_type_code OUT VARCHAR2
20546 ,p_gain_or_loss_ref OUT VARCHAR2
20547
20548 --Budget Account
20549 , p_source_9 IN NUMBER
20550 --Main Or Backing Code
20551 , p_source_13 IN VARCHAR2
20552 --Accounting Reversal Flag
20553 , p_source_15 IN VARCHAR2
20554 --Distribution Link Type
20555 , p_source_17 IN VARCHAR2
20556 --PO Distribution Identifier
20557 , p_source_19 IN NUMBER
20558 --PO Header Identifier
20559 , p_source_20 IN NUMBER
20560 --Applied To Application Identifier
20561 , p_source_21 IN NUMBER
20562 --Applied To Distribution Link Type
20563 , p_source_22 IN VARCHAR2
20564 --Applied To Entity Code
20565 , p_source_23 IN VARCHAR2
20566 --Applied To Distribution Identifier 1
20567 , p_source_24 IN NUMBER
20568 --Applied To Header Identifier 1
20569 , p_source_25 IN NUMBER
20570 --Entered Amount
20571 , p_source_26 IN NUMBER
20572 --Currency Code
20573 , p_source_27 IN VARCHAR2
20574 --Accounted Amount
20575 , p_source_28 IN NUMBER
20576 --PO Encumbrance Upgrade Option
20577 , p_source_29 IN VARCHAR2
20578 --JFMIP Reference
20579 , p_source_31 IN VARCHAR2
20580 --PO Upgrade Encumbrance Type Identifier
20581 , p_source_32 IN NUMBER
20582 --Allocated to Main Document Distribution Type
20583 , p_source_33 IN VARCHAR2
20584 --Allocated to Main Document Distribution Identifier
20585 , p_source_34 IN NUMBER
20586 )
20587 IS
20588
20589 l_component_type VARCHAR2(80);
20590 l_component_code VARCHAR2(30);
20591 l_component_type_code VARCHAR2(1);
20592 l_component_appl_id INTEGER;
20593 l_amb_context_code VARCHAR2(30);
20594 l_entity_code VARCHAR2(30);
20595 l_event_class_code VARCHAR2(30);
20596 l_ae_header_id NUMBER;
20597 l_event_type_code VARCHAR2(30);
20598 l_line_definition_code VARCHAR2(30);
20599 l_line_definition_owner_code VARCHAR2(1);
20600 --
20601 -- adr variables
20602 l_segment VARCHAR2(30);
20603 l_ccid NUMBER;
20604 l_adr_transaction_coa_id NUMBER;
20605 l_adr_accounting_coa_id NUMBER;
20606 l_adr_flexfield_segment_code VARCHAR2(30);
20607 l_adr_flex_value_set_id NUMBER;
20608 l_adr_value_type_code VARCHAR2(30);
20609 l_adr_value_combination_id NUMBER;
20610 l_adr_value_segment_code VARCHAR2(30);
20611
20612 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20613 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20614 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20615 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20616
20617 -- 4262811 Variables ------------------------------------------------------------------------------------------
20618 l_entered_amt_idx NUMBER;
20619 l_accted_amt_idx NUMBER;
20620 l_acc_rev_flag VARCHAR2(1);
20621 l_accrual_line_num NUMBER;
20622 l_tmp_amt NUMBER;
20623 l_acc_rev_natural_side_code VARCHAR2(1);
20624
20625 l_num_entries NUMBER;
20626 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20627 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20628 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20629 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20630 l_recog_line_1 NUMBER;
20631 l_recog_line_2 NUMBER;
20632
20633 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20634 l_bflow_applied_to_amt NUMBER; -- 5132302
20635 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20636
20637 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20638
20639 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20640 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20641
20642 ---------------------------------------------------------------------------------------------------------------
20643
20644
20645 --
20646 -- bulk performance
20647 --
20648 l_balance_type_code VARCHAR2(1);
20649 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20650 l_log_module VARCHAR2(240);
20651
20652 --
20653 -- Upgrade strategy
20654 --
20655 l_actual_upg_option VARCHAR2(1);
20656 l_enc_upg_option VARCHAR2(1);
20657
20658 --
20659 BEGIN
20660 --
20661 IF g_log_enabled THEN
20662 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
20663 END IF;
20664 --
20665 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20666
20667 trace
20668 (p_msg => 'BEGIN of AcctLineType_43'
20669 ,p_level => C_LEVEL_PROCEDURE
20670 ,p_module => l_log_module);
20671
20672 END IF;
20673 --
20674 l_component_type := 'AMB_JLT';
20675 l_component_code := 'FV_REINSTATE_BPA_PO_REVERSE_DR';
20676 l_component_type_code := 'S';
20677 l_component_appl_id := 201;
20678 l_amb_context_code := 'DEFAULT';
20679 l_entity_code := 'PURCHASE_ORDER';
20680 l_event_class_code := 'PO_PA';
20681 l_event_type_code := 'PO_PA_ALL';
20682 l_line_definition_owner_code := 'S';
20683 l_line_definition_code := 'FV_PO_ALL';
20684 --
20685 l_balance_type_code := 'A';
20686 l_segment := NULL;
20687 l_ccid := NULL;
20688 l_adr_transaction_coa_id := NULL;
20689 l_adr_accounting_coa_id := NULL;
20690 l_adr_flexfield_segment_code := NULL;
20691 l_adr_flex_value_set_id := NULL;
20692 l_adr_value_type_code := NULL;
20693 l_adr_value_combination_id := NULL;
20694 l_adr_value_segment_code := NULL;
20695
20696 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
20697 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
20698 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
20699 l_budgetary_control_flag := 'Y';
20700
20701 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20702 l_bflow_applied_to_amt := NULL; -- 5132302
20703 l_entered_amt_idx := NULL; -- 4262811
20704 l_accted_amt_idx := NULL; -- 4262811
20705 l_acc_rev_flag := NULL; -- 4262811
20706 l_accrual_line_num := NULL; -- 4262811
20707 l_tmp_amt := NULL; -- 4262811
20708 --
20709
20710 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20711 l_balance_type_code <> 'B' THEN
20712 IF (NVL(
20713 xla_ae_sources_pkg.GetSystemSourceChar(
20714 p_source_code => 'XLA_EVENT_TYPE_CODE'
20715 , p_source_type_code => 'Y'
20716 , p_source_application_id => 602
20717 ),'
20718 ') = 'PO_PA_CANCELLED' OR
20719 NVL(
20720 xla_ae_sources_pkg.GetSystemSourceChar(
20721 p_source_code => 'XLA_EVENT_TYPE_CODE'
20722 , p_source_type_code => 'Y'
20723 , p_source_application_id => 602
20724 ),'
20725 ') = 'PO_PA_CR_MEMO_CANCELLED') AND
20726 NVL(p_source_13,'
20727 ') = 'B_PA'
20728 THEN
20729
20730 --
20731 XLA_AE_LINES_PKG.SetNewLine;
20732
20733 p_balance_type_code := l_balance_type_code;
20734 -- set the flag so later we will know whether the gain loss line needs to be created
20735
20736 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20737 p_actual_flag :='A';
20738 END IF;
20739
20740 --
20741 -- bulk performance
20742 --
20743 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20744 p_header_num => 0); -- 4262811
20745 --
20746 -- set accounting line options
20747 --
20748 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20749 p_natural_side_code => 'D'
20750 , p_gain_or_loss_flag => 'N'
20751 , p_gl_transfer_mode_code => 'S'
20752 , p_acct_entry_type_code => 'A'
20753 , p_switch_side_flag => 'N'
20754 , p_merge_duplicate_code => 'N'
20755 );
20756 --
20757 l_acc_rev_natural_side_code := 'C'; -- 4262811
20758 --
20759 --
20760 -- set accounting line type info
20761 --
20762 xla_ae_lines_pkg.SetAcctLineType
20763 (p_component_type => l_component_type
20764 ,p_event_type_code => l_event_type_code
20765 ,p_line_definition_owner_code => l_line_definition_owner_code
20766 ,p_line_definition_code => l_line_definition_code
20767 ,p_accounting_line_code => l_component_code
20768 ,p_accounting_line_type_code => l_component_type_code
20769 ,p_accounting_line_appl_id => l_component_appl_id
20770 ,p_amb_context_code => l_amb_context_code
20771 ,p_entity_code => l_entity_code
20772 ,p_event_class_code => l_event_class_code);
20773 --
20774 -- set accounting class
20775 --
20776 xla_ae_lines_pkg.SetAcctClass(
20777 p_accounting_class_code => 'PURCHASE_ORDER'
20778 , p_ae_header_id => l_ae_header_id
20779 );
20780
20781 --
20782 -- set rounding class
20783 --
20784 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20785 'PURCHASE_ORDER';
20786
20787 --
20788 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20789 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20790 --
20791 -- bulk performance
20792 --
20793 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20794
20795 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20796 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20797
20798 -- 4955764
20799 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20800 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20801
20802 -- 4458381 Public Sector Enh
20803
20804 --
20805 -- set accounting attributes for the line type
20806 --
20807 l_entered_amt_idx := 23;
20808 l_accted_amt_idx := 25;
20809 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20810 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20811 l_rec_acct_attrs.array_char_value(1) := p_source_15;
20812 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
20813 l_rec_acct_attrs.array_num_value(2) :=
20814 xla_ae_sources_pkg.GetSystemSourceNum(
20815 p_source_code => 'XLA_EVENT_APPL_ID'
20816 , p_source_type_code => 'Y'
20817 , p_source_application_id => 602
20818 );
20819 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
20820 l_rec_acct_attrs.array_char_value(3) := p_source_33;
20821 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
20822 l_rec_acct_attrs.array_char_value(4) :=
20823 xla_ae_sources_pkg.GetSystemSourceChar(
20824 p_source_code => 'XLA_ENTITY_CODE'
20825 , p_source_type_code => 'Y'
20826 , p_source_application_id => 602
20827 );
20828 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
20829 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
20830 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
20831 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
20832 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
20833 l_rec_acct_attrs.array_num_value(7) := p_source_21;
20834 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20835 l_rec_acct_attrs.array_char_value(8) := p_source_22;
20836 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
20837 l_rec_acct_attrs.array_char_value(9) := p_source_23;
20838 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
20839 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
20840 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20841 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
20842 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
20843 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
20844 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
20845 l_rec_acct_attrs.array_char_value(13) := p_source_17;
20846 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
20847 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
20848 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
20849 l_rec_acct_attrs.array_num_value(15) := p_source_26;
20850 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
20851 l_rec_acct_attrs.array_char_value(16) := p_source_27;
20852 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
20853 l_rec_acct_attrs.array_num_value(17) := p_source_28;
20854 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
20855 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
20856 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
20857 l_rec_acct_attrs.array_num_value(19) := p_source_26;
20858 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
20859 l_rec_acct_attrs.array_char_value(20) := p_source_27;
20860 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
20861 l_rec_acct_attrs.array_num_value(21) := p_source_28;
20862 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
20866 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
20863 l_rec_acct_attrs.array_char_value(22) := p_source_29;
20864 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
20865 l_rec_acct_attrs.array_num_value(23) := p_source_26;
20867 l_rec_acct_attrs.array_char_value(24) := p_source_27;
20868 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
20869 l_rec_acct_attrs.array_num_value(25) := p_source_28;
20870 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
20871 l_rec_acct_attrs.array_char_value(26) := p_source_31;
20872 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
20873 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
20874 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
20875 l_rec_acct_attrs.array_char_value(28) := p_source_22;
20876 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
20877 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
20878 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
20879 l_rec_acct_attrs.array_num_value(30) := p_source_32;
20880 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
20881 l_rec_acct_attrs.array_num_value(31) := p_source_32;
20882
20883 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20884 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20885
20886 ---------------------------------------------------------------------------------------------------------------
20887 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20888 ---------------------------------------------------------------------------------------------------------------
20889 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20890
20891 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20892 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20893
20894 IF xla_accounting_cache_pkg.GetValueChar
20895 (p_source_code => 'LEDGER_CATEGORY_CODE'
20896 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20897 AND l_bflow_method_code = 'PRIOR_ENTRY'
20898 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20899 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20900 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20901 )
20902 THEN
20903 xla_ae_lines_pkg.BflowUpgEntry
20904 (p_business_method_code => l_bflow_method_code
20905 ,p_business_class_code => l_bflow_class_code
20906 ,p_balance_type => l_balance_type_code);
20907 ELSE
20908 NULL;
20909 XLA_AE_LINES_PKG.business_flow_validation(
20910 p_business_method_code => l_bflow_method_code
20911 ,p_business_class_code => l_bflow_class_code
20912 ,p_inherit_description_flag => l_inherit_desc_flag);
20913 END IF;
20914
20915 --
20916 -- call analytical criteria
20917 --
20918 -- Inherited Analytical Criteria for business flow method of Prior Entry.
20919 --
20920 -- call description
20921 --
20922 -- No description or it is inherited.
20923 --
20924 -- call ADRs
20925 -- Bug 4922099
20926 --
20927 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20928 (NVL(l_actual_upg_option, 'N') = 'O') OR
20929 (NVL(l_enc_upg_option, 'N') = 'O')
20930 )
20931 THEN
20932 NULL;
20933 --
20934 --
20935
20936 --
20937 --
20938 END IF;
20939 --
20940 -- Bug 4922099
20941 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20942 (NVL(l_enc_upg_option, 'N') = 'O')
20943 ) AND
20944 (l_bflow_method_code = 'PRIOR_ENTRY')
20945 )
20946 THEN
20947 IF
20948 --
20949 1 = 1
20950 --
20951 THEN
20952 xla_accounting_err_pkg.build_message
20953 (p_appli_s_name => 'XLA'
20954 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20955 ,p_token_1 => 'LINE_NUMBER'
20956 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20957 ,p_token_2 => 'LINE_TYPE_NAME'
20958 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20959 l_component_type
20960 ,l_component_code
20961 ,l_component_type_code
20962 ,l_component_appl_id
20963 ,l_amb_context_code
20964 ,l_entity_code
20965 ,l_event_class_code
20966 )
20967 ,p_token_3 => 'OWNER'
20968 ,p_value_3 => xla_lookups_pkg.get_meaning(
20969 p_lookup_type => 'XLA_OWNER_TYPE'
20973 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20970 ,p_lookup_code => l_component_type_code
20971 )
20972 ,p_token_4 => 'PRODUCT_NAME'
20974 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20975 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20976 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20977 ,p_ae_header_id => NULL
20978 );
20979
20980 IF (C_LEVEL_ERROR>= g_log_level) THEN
20981 trace
20982 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20983 ,p_level => C_LEVEL_ERROR
20984 ,p_module => l_log_module);
20985 END IF;
20986 END IF;
20987 END IF;
20988 --
20989 --
20990 ------------------------------------------------------------------------------------------------
20991 -- 4219869 Business Flow
20992 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20993 -- Prior Entry. Currently, the following code is always generated.
20994 ------------------------------------------------------------------------------------------------
20995 -- No ValidateCurrentLine for business flow method of Prior Entry
20996
20997 ------------------------------------------------------------------------------------
20998 -- 4219869 Business Flow
20999 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21000 ------------------------------------------------------------------------------------
21001 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21002
21003 ----------------------------------------------------------------------------------
21004 -- 4219869 Business Flow
21005 -- Update journal entry status -- Need to generate this within IF <condition>
21006 ----------------------------------------------------------------------------------
21007 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21008 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21009 ,p_balance_type_code => l_balance_type_code
21010 );
21011
21012 -------------------------------------------------------------------------------------------
21013 -- 4262811 - Generate the Accrual Reversal lines
21014 -------------------------------------------------------------------------------------------
21015 BEGIN
21016 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21017 (g_array_event(p_event_id).array_value_num('header_index'));
21018 IF l_acc_rev_flag IS NULL THEN
21019 l_acc_rev_flag := 'N';
21020 END IF;
21021 EXCEPTION
21022 WHEN OTHERS THEN
21023 l_acc_rev_flag := 'N';
21024 END;
21025 --
21026 IF (l_acc_rev_flag = 'Y') THEN
21027
21028 -- 4645092 ------------------------------------------------------------------------------
21029 -- To allow MPA report to determine if it should generate report process
21030 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21031 ------------------------------------------------------------------------------------------
21032
21033 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21034 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21035
21036 --
21037 -- Update the line information that should be overwritten
21038 --
21039 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21040 p_header_num => 1);
21041 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21042
21043 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21044
21045 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21046 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21047 END IF;
21048
21049 --
21050 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21051 --
21052 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21053 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21054 ELSE
21055 ---------------------------------------------------------------------------------------------------
21056 -- 4262811a Switch Sign
21057 ---------------------------------------------------------------------------------------------------
21058 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21059 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21060 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21061 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21062 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21063 -- 5132302
21064 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21065 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21066
21067 END IF;
21068
21069 -- 4955764
21073
21070 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21071 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21072
21074 XLA_AE_LINES_PKG.ValidateCurrentLine;
21075 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21076
21077 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21078 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21079 ,p_balance_type_code => l_balance_type_code);
21080
21081 END IF;
21082
21083 -----------------------------------------------------------------------------------------
21084 -- 4262811 Multiperiod Accounting
21085 -----------------------------------------------------------------------------------------
21086 -- No MPA option is assigned.
21087
21088
21089 END IF;
21090 END IF;
21091 --
21092
21093 --
21094 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21095 trace
21096 (p_msg => 'END of AcctLineType_43'
21097 ,p_level => C_LEVEL_PROCEDURE
21098 ,p_module => l_log_module);
21099 END IF;
21100 --
21101 EXCEPTION
21102 WHEN xla_exceptions_pkg.application_exception THEN
21103 RAISE;
21104 WHEN OTHERS THEN
21105 xla_exceptions_pkg.raise_message
21106 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_43');
21107 END AcctLineType_43;
21108 --
21109
21110 ---------------------------------------
21111 --
21112 -- PRIVATE FUNCTION
21113 -- AcctLineType_44
21114 --
21115 ---------------------------------------
21116 PROCEDURE AcctLineType_44 (
21117 p_application_id IN NUMBER
21118 ,p_event_id IN NUMBER
21119 ,p_calculate_acctd_flag IN VARCHAR2
21120 ,p_calculate_g_l_flag IN VARCHAR2
21121 ,p_actual_flag IN OUT VARCHAR2
21122 ,p_balance_type_code OUT VARCHAR2
21123 ,p_gain_or_loss_ref OUT VARCHAR2
21124
21125 --Journal entry Line Description
21126 , p_source_3 IN VARCHAR2
21127 --Federal Fund Category
21128 , p_source_7 IN VARCHAR2
21129 --Budget Account
21130 , p_source_9 IN NUMBER
21131 --Main Or Backing Code
21132 , p_source_13 IN VARCHAR2
21133 --Accounting Reversal Flag
21134 , p_source_15 IN VARCHAR2
21135 --Distribution Link Type
21136 , p_source_17 IN VARCHAR2
21137 --PO Distribution Identifier
21138 , p_source_19 IN NUMBER
21139 --PO Header Identifier
21140 , p_source_20 IN NUMBER
21141 --Applied To Application Identifier
21142 , p_source_21 IN NUMBER
21143 --Applied To Distribution Link Type
21144 , p_source_22 IN VARCHAR2
21145 --Applied To Entity Code
21146 , p_source_23 IN VARCHAR2
21147 --Applied To Distribution Identifier 1
21148 , p_source_24 IN NUMBER
21149 --Applied To Header Identifier 1
21150 , p_source_25 IN NUMBER
21151 --Entered Amount
21152 , p_source_26 IN NUMBER
21153 --Currency Code
21154 , p_source_27 IN VARCHAR2
21155 --Accounted Amount
21156 , p_source_28 IN NUMBER
21157 --PO Encumbrance Upgrade Option
21158 , p_source_29 IN VARCHAR2
21159 --JFMIP Reference
21160 , p_source_31 IN VARCHAR2
21161 --PO Upgrade Encumbrance Type Identifier
21162 , p_source_32 IN NUMBER
21163 --Allocated to Main Document Distribution Type
21164 , p_source_33 IN VARCHAR2
21165 --Allocated to Main Document Distribution Identifier
21166 , p_source_34 IN NUMBER
21167 --Currency Conversion Date
21168 , p_source_35 IN DATE
21169 --Currency Conversion Rate
21170 , p_source_36 IN NUMBER
21171 --Currency Conversion Type
21172 , p_source_37 IN VARCHAR2
21173 )
21174 IS
21175
21176 l_component_type VARCHAR2(80);
21177 l_component_code VARCHAR2(30);
21178 l_component_type_code VARCHAR2(1);
21179 l_component_appl_id INTEGER;
21180 l_amb_context_code VARCHAR2(30);
21181 l_entity_code VARCHAR2(30);
21182 l_event_class_code VARCHAR2(30);
21183 l_ae_header_id NUMBER;
21184 l_event_type_code VARCHAR2(30);
21185 l_line_definition_code VARCHAR2(30);
21186 l_line_definition_owner_code VARCHAR2(1);
21187 --
21188 -- adr variables
21189 l_segment VARCHAR2(30);
21190 l_ccid NUMBER;
21191 l_adr_transaction_coa_id NUMBER;
21192 l_adr_accounting_coa_id NUMBER;
21193 l_adr_flexfield_segment_code VARCHAR2(30);
21194 l_adr_flex_value_set_id NUMBER;
21195 l_adr_value_type_code VARCHAR2(30);
21196 l_adr_value_combination_id NUMBER;
21197 l_adr_value_segment_code VARCHAR2(30);
21198
21199 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21200 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21201 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21202 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21203
21204 -- 4262811 Variables ------------------------------------------------------------------------------------------
21205 l_entered_amt_idx NUMBER;
21206 l_accted_amt_idx NUMBER;
21207 l_acc_rev_flag VARCHAR2(1);
21208 l_accrual_line_num NUMBER;
21209 l_tmp_amt NUMBER;
21210 l_acc_rev_natural_side_code VARCHAR2(1);
21211
21212 l_num_entries NUMBER;
21213 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21214 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21215 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21216 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21217 l_recog_line_1 NUMBER;
21218 l_recog_line_2 NUMBER;
21219
21220 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21221 l_bflow_applied_to_amt NUMBER; -- 5132302
21222 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21223
21224 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21225
21226 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21227 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21228
21229 ---------------------------------------------------------------------------------------------------------------
21230
21231
21232 --
21233 -- bulk performance
21234 --
21235 l_balance_type_code VARCHAR2(1);
21236 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21237 l_log_module VARCHAR2(240);
21238
21239 --
21240 -- Upgrade strategy
21241 --
21242 l_actual_upg_option VARCHAR2(1);
21243 l_enc_upg_option VARCHAR2(1);
21244
21245 --
21246 BEGIN
21247 --
21248 IF g_log_enabled THEN
21249 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
21250 END IF;
21251 --
21252 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21253
21254 trace
21255 (p_msg => 'BEGIN of AcctLineType_44'
21256 ,p_level => C_LEVEL_PROCEDURE
21257 ,p_module => l_log_module);
21258
21259 END IF;
21260 --
21261 l_component_type := 'AMB_JLT';
21262 l_component_code := 'FV_REINSTATE_REQ_PO_REVERSE_CR';
21263 l_component_type_code := 'S';
21264 l_component_appl_id := 201;
21265 l_amb_context_code := 'DEFAULT';
21266 l_entity_code := 'PURCHASE_ORDER';
21267 l_event_class_code := 'PO_PA';
21268 l_event_type_code := 'PO_PA_ALL';
21269 l_line_definition_owner_code := 'S';
21270 l_line_definition_code := 'FV_PO_ALL';
21271 --
21272 l_balance_type_code := 'A';
21273 l_segment := NULL;
21274 l_ccid := NULL;
21275 l_adr_transaction_coa_id := NULL;
21276 l_adr_accounting_coa_id := NULL;
21277 l_adr_flexfield_segment_code := NULL;
21278 l_adr_flex_value_set_id := NULL;
21279 l_adr_value_type_code := NULL;
21280 l_adr_value_combination_id := NULL;
21281 l_adr_value_segment_code := NULL;
21282
21283 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21284 l_bflow_class_code := ''; -- 4219869 Business Flow
21285 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21286 l_budgetary_control_flag := 'Y';
21287
21288 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21289 l_bflow_applied_to_amt := NULL; -- 5132302
21290 l_entered_amt_idx := NULL; -- 4262811
21291 l_accted_amt_idx := NULL; -- 4262811
21292 l_acc_rev_flag := NULL; -- 4262811
21293 l_accrual_line_num := NULL; -- 4262811
21294 l_tmp_amt := NULL; -- 4262811
21295 --
21296
21297 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21298 l_balance_type_code <> 'B' THEN
21299 IF (NVL(
21300 xla_ae_sources_pkg.GetSystemSourceChar(
21301 p_source_code => 'XLA_EVENT_TYPE_CODE'
21302 , p_source_type_code => 'Y'
21303 , p_source_application_id => 602
21304 ),'
21305 ') = 'PO_PA_CANCELLED' OR
21306 NVL(
21307 xla_ae_sources_pkg.GetSystemSourceChar(
21308 p_source_code => 'XLA_EVENT_TYPE_CODE'
21309 , p_source_type_code => 'Y'
21310 , p_source_application_id => 602
21311 ),'
21312 ') = 'PO_PA_CR_MEMO_CANCELLED') AND
21313 NVL(p_source_13,'
21314 ') = 'B_REQ'
21315 THEN
21316
21317 --
21318 XLA_AE_LINES_PKG.SetNewLine;
21319
21320 p_balance_type_code := l_balance_type_code;
21321 -- set the flag so later we will know whether the gain loss line needs to be created
21322
21323 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21324 p_actual_flag :='A';
21325 END IF;
21326
21327 --
21331 p_header_num => 0); -- 4262811
21328 -- bulk performance
21329 --
21330 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21332 --
21333 -- set accounting line options
21334 --
21335 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21336 p_natural_side_code => 'C'
21337 , p_gain_or_loss_flag => 'N'
21338 , p_gl_transfer_mode_code => 'S'
21339 , p_acct_entry_type_code => 'A'
21340 , p_switch_side_flag => 'N'
21341 , p_merge_duplicate_code => 'N'
21342 );
21343 --
21344 l_acc_rev_natural_side_code := 'D'; -- 4262811
21345 --
21346 --
21347 -- set accounting line type info
21348 --
21349 xla_ae_lines_pkg.SetAcctLineType
21350 (p_component_type => l_component_type
21351 ,p_event_type_code => l_event_type_code
21352 ,p_line_definition_owner_code => l_line_definition_owner_code
21353 ,p_line_definition_code => l_line_definition_code
21354 ,p_accounting_line_code => l_component_code
21355 ,p_accounting_line_type_code => l_component_type_code
21356 ,p_accounting_line_appl_id => l_component_appl_id
21357 ,p_amb_context_code => l_amb_context_code
21358 ,p_entity_code => l_entity_code
21359 ,p_event_class_code => l_event_class_code);
21360 --
21361 -- set accounting class
21362 --
21363 xla_ae_lines_pkg.SetAcctClass(
21364 p_accounting_class_code => 'REQUISITION'
21365 , p_ae_header_id => l_ae_header_id
21366 );
21367
21368 --
21369 -- set rounding class
21370 --
21371 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21372 'REQUISITION';
21373
21374 --
21375 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21376 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21377 --
21378 -- bulk performance
21379 --
21380 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21381
21382 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21383 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21384
21385 -- 4955764
21386 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21387 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21388
21389 -- 4458381 Public Sector Enh
21390
21391 --
21392 -- set accounting attributes for the line type
21393 --
21394 l_entered_amt_idx := 23;
21395 l_accted_amt_idx := 28;
21396 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21397 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21398 l_rec_acct_attrs.array_char_value(1) := p_source_15;
21399 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
21400 l_rec_acct_attrs.array_num_value(2) :=
21401 xla_ae_sources_pkg.GetSystemSourceNum(
21402 p_source_code => 'XLA_EVENT_APPL_ID'
21403 , p_source_type_code => 'Y'
21404 , p_source_application_id => 602
21405 );
21406 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
21407 l_rec_acct_attrs.array_char_value(3) := p_source_33;
21408 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
21409 l_rec_acct_attrs.array_char_value(4) :=
21410 xla_ae_sources_pkg.GetSystemSourceChar(
21411 p_source_code => 'XLA_ENTITY_CODE'
21412 , p_source_type_code => 'Y'
21413 , p_source_application_id => 602
21414 );
21415 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
21416 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
21417 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
21418 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
21419 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
21420 l_rec_acct_attrs.array_num_value(7) := p_source_21;
21421 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21422 l_rec_acct_attrs.array_char_value(8) := p_source_22;
21423 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
21424 l_rec_acct_attrs.array_char_value(9) := p_source_23;
21425 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
21426 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
21427 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21428 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
21429 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
21430 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
21431 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
21432 l_rec_acct_attrs.array_char_value(13) := p_source_17;
21433 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
21434 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
21435 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
21436 l_rec_acct_attrs.array_num_value(15) := p_source_26;
21437 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
21438 l_rec_acct_attrs.array_char_value(16) := p_source_27;
21439 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
21440 l_rec_acct_attrs.array_num_value(17) := p_source_28;
21441 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
21442 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
21443 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
21444 l_rec_acct_attrs.array_num_value(19) := p_source_26;
21445 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
21446 l_rec_acct_attrs.array_char_value(20) := p_source_27;
21447 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
21448 l_rec_acct_attrs.array_num_value(21) := p_source_28;
21449 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
21450 l_rec_acct_attrs.array_char_value(22) := p_source_29;
21451 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
21452 l_rec_acct_attrs.array_num_value(23) := p_source_26;
21453 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
21454 l_rec_acct_attrs.array_char_value(24) := p_source_27;
21455 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
21456 l_rec_acct_attrs.array_date_value(25) := p_source_35;
21457 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
21458 l_rec_acct_attrs.array_num_value(26) := p_source_36;
21459 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
21460 l_rec_acct_attrs.array_char_value(27) := p_source_37;
21461 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
21462 l_rec_acct_attrs.array_num_value(28) := p_source_28;
21463 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
21464 l_rec_acct_attrs.array_char_value(29) := p_source_31;
21465 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
21466 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
21467 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
21468 l_rec_acct_attrs.array_char_value(31) := p_source_22;
21469 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
21470 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
21471 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
21472 l_rec_acct_attrs.array_num_value(33) := p_source_32;
21473 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
21474 l_rec_acct_attrs.array_num_value(34) := p_source_32;
21475
21476 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21477 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21478
21479 ---------------------------------------------------------------------------------------------------------------
21480 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21481 ---------------------------------------------------------------------------------------------------------------
21482 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21483
21484 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21485 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21486
21487 IF xla_accounting_cache_pkg.GetValueChar
21488 (p_source_code => 'LEDGER_CATEGORY_CODE'
21489 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21490 AND l_bflow_method_code = 'PRIOR_ENTRY'
21491 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21492 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21493 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21494 )
21495 THEN
21496 xla_ae_lines_pkg.BflowUpgEntry
21497 (p_business_method_code => l_bflow_method_code
21498 ,p_business_class_code => l_bflow_class_code
21499 ,p_balance_type => l_balance_type_code);
21500 ELSE
21501 NULL;
21502 -- No business flow processing for business flow method of NONE.
21503 END IF;
21504
21505 --
21506 -- call analytical criteria
21507 --
21508
21509 --
21510 -- call description
21511 --
21512
21513 xla_ae_lines_pkg.SetLineDescription(
21514 p_ae_header_id => l_ae_header_id
21515 ,p_description => Description_2 (
21516 p_application_id => p_application_id
21517 , p_ae_header_id => l_ae_header_id
21518 , p_source_3 => p_source_3
21519 )
21520 );
21521
21522
21523 --
21524 -- call ADRs
21525 -- Bug 4922099
21526 --
21527 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21528 (NVL(l_actual_upg_option, 'N') = 'O') OR
21529 (NVL(l_enc_upg_option, 'N') = 'O')
21530 )
21531 THEN
21532 NULL;
21533 --
21534 --
21535
21536 l_ccid := AcctDerRule_9(
21537 p_application_id => p_application_id
21538 , p_ae_header_id => l_ae_header_id
21539 , p_source_9 => p_source_9
21540 , x_transaction_coa_id => l_adr_transaction_coa_id
21541 , x_accounting_coa_id => l_adr_accounting_coa_id
21542 , x_value_type_code => l_adr_value_type_code
21543 , p_side => 'NA'
21544 );
21545
21546 xla_ae_lines_pkg.set_ccid(
21547 p_code_combination_id => l_ccid
21548 , p_value_type_code => l_adr_value_type_code
21549 , p_transaction_coa_id => l_adr_transaction_coa_id
21550 , p_accounting_coa_id => l_adr_accounting_coa_id
21551 , p_adr_code => 'FV_ACCOUNT_RULE'
21552 , p_adr_type_code => 'S'
21553 , p_component_type => l_component_type
21554 , p_component_code => l_component_code
21555 , p_component_type_code => l_component_type_code
21556 , p_component_appl_id => l_component_appl_id
21557 , p_amb_context_code => l_amb_context_code
21558 , p_side => 'NA'
21559 );
21560
21561
21562 l_segment := AcctDerRule_6(
21563 p_application_id => p_application_id
21564 , p_ae_header_id => l_ae_header_id
21565 , p_source_7 => p_source_7
21566 , x_transaction_coa_id => l_adr_transaction_coa_id
21567 , x_accounting_coa_id => l_adr_accounting_coa_id
21568 , x_flexfield_segment_code => l_adr_flexfield_segment_code
21569 , x_flex_value_set_id => l_adr_flex_value_set_id
21570 , x_value_type_code => l_adr_value_type_code
21571 , x_value_combination_id => l_adr_value_combination_id
21572 , x_value_segment_code => l_adr_value_segment_code
21573 , p_side => 'NA'
21574 , p_override_seg_flag => 'Y'
21575 );
21576
21577 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
21578
21579 xla_ae_lines_pkg.set_segment(
21580 p_to_segment_code => 'GL_ACCOUNT'
21581 , p_segment_value => l_segment
21582 , p_from_segment_code => l_adr_value_segment_code
21583 , p_from_combination_id => l_adr_value_combination_id
21584 , p_value_type_code => l_adr_value_type_code
21585 , p_transaction_coa_id => l_adr_transaction_coa_id
21586 , p_accounting_coa_id => l_adr_accounting_coa_id
21587 , p_flexfield_segment_code => l_adr_flexfield_segment_code
21588 , p_flex_value_set_id => l_adr_flex_value_set_id
21589 , p_adr_code => 'FV_47X002_REQUISITION'
21590 , p_adr_type_code => 'S'
21591 , p_component_type => l_component_type
21592 , p_component_code => l_component_code
21593 , p_component_type_code => l_component_type_code
21594 , p_component_appl_id => l_component_appl_id
21595 , p_amb_context_code => l_amb_context_code
21596 , p_entity_code => 'PURCHASE_ORDER'
21597 , p_event_class_code => 'PO_PA'
21598 , p_side => 'NA'
21599 );
21600
21601 END IF;
21602
21603 --
21604 --
21605 END IF;
21606 --
21607 -- Bug 4922099
21608 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21609 (NVL(l_enc_upg_option, 'N') = 'O')
21610 ) AND
21611 (l_bflow_method_code = 'PRIOR_ENTRY')
21612 )
21613 THEN
21614 IF
21615 --
21616 1 = 2
21617 --
21618 THEN
21619 xla_accounting_err_pkg.build_message
21620 (p_appli_s_name => 'XLA'
21621 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21622 ,p_token_1 => 'LINE_NUMBER'
21623 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21624 ,p_token_2 => 'LINE_TYPE_NAME'
21625 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21626 l_component_type
21627 ,l_component_code
21628 ,l_component_type_code
21629 ,l_component_appl_id
21630 ,l_amb_context_code
21631 ,l_entity_code
21632 ,l_event_class_code
21633 )
21634 ,p_token_3 => 'OWNER'
21635 ,p_value_3 => xla_lookups_pkg.get_meaning(
21636 p_lookup_type => 'XLA_OWNER_TYPE'
21637 ,p_lookup_code => l_component_type_code
21638 )
21639 ,p_token_4 => 'PRODUCT_NAME'
21640 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21641 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21642 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21643 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21644 ,p_ae_header_id => NULL
21645 );
21646
21647 IF (C_LEVEL_ERROR>= g_log_level) THEN
21648 trace
21649 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21650 ,p_level => C_LEVEL_ERROR
21651 ,p_module => l_log_module);
21652 END IF;
21653 END IF;
21654 END IF;
21655 --
21656 --
21657 ------------------------------------------------------------------------------------------------
21658 -- 4219869 Business Flow
21659 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21660 -- Prior Entry. Currently, the following code is always generated.
21661 ------------------------------------------------------------------------------------------------
21662 XLA_AE_LINES_PKG.ValidateCurrentLine;
21663
21664 ------------------------------------------------------------------------------------
21665 -- 4219869 Business Flow
21666 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21667 ------------------------------------------------------------------------------------
21668 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21669
21670 ----------------------------------------------------------------------------------
21671 -- 4219869 Business Flow
21672 -- Update journal entry status -- Need to generate this within IF <condition>
21673 ----------------------------------------------------------------------------------
21674 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21675 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21676 ,p_balance_type_code => l_balance_type_code
21677 );
21678
21679 -------------------------------------------------------------------------------------------
21680 -- 4262811 - Generate the Accrual Reversal lines
21681 -------------------------------------------------------------------------------------------
21682 BEGIN
21683 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21684 (g_array_event(p_event_id).array_value_num('header_index'));
21685 IF l_acc_rev_flag IS NULL THEN
21686 l_acc_rev_flag := 'N';
21687 END IF;
21688 EXCEPTION
21689 WHEN OTHERS THEN
21690 l_acc_rev_flag := 'N';
21691 END;
21692 --
21693 IF (l_acc_rev_flag = 'Y') THEN
21694
21695 -- 4645092 ------------------------------------------------------------------------------
21696 -- To allow MPA report to determine if it should generate report process
21697 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21698 ------------------------------------------------------------------------------------------
21699
21700 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21701 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21702
21703 --
21704 -- Update the line information that should be overwritten
21705 --
21706 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21707 p_header_num => 1);
21708 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21709
21710 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21711
21712 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21713 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21714 END IF;
21715
21716 --
21717 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21718 --
21719 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21720 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21721 ELSE
21722 ---------------------------------------------------------------------------------------------------
21723 -- 4262811a Switch Sign
21724 ---------------------------------------------------------------------------------------------------
21725 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21726 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21727 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21728 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21729 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21730 -- 5132302
21731 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21732 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21733
21734 END IF;
21735
21736 -- 4955764
21737 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21738 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21739
21740
21741 XLA_AE_LINES_PKG.ValidateCurrentLine;
21742 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21743
21744 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21745 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21746 ,p_balance_type_code => l_balance_type_code);
21747
21748 END IF;
21749
21750 -----------------------------------------------------------------------------------------
21751 -- 4262811 Multiperiod Accounting
21752 -----------------------------------------------------------------------------------------
21753 -- No MPA option is assigned.
21754
21755
21756 END IF;
21757 END IF;
21758 --
21759
21760 --
21761 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21762 trace
21763 (p_msg => 'END of AcctLineType_44'
21764 ,p_level => C_LEVEL_PROCEDURE
21765 ,p_module => l_log_module);
21766 END IF;
21767 --
21768 EXCEPTION
21769 WHEN xla_exceptions_pkg.application_exception THEN
21770 RAISE;
21771 WHEN OTHERS THEN
21772 xla_exceptions_pkg.raise_message
21773 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_44');
21774 END AcctLineType_44;
21775 --
21776
21777 ---------------------------------------
21778 --
21779 -- PRIVATE FUNCTION
21780 -- AcctLineType_45
21781 --
21782 ---------------------------------------
21783 PROCEDURE AcctLineType_45 (
21784 p_application_id IN NUMBER
21785 ,p_event_id IN NUMBER
21786 ,p_calculate_acctd_flag IN VARCHAR2
21787 ,p_calculate_g_l_flag IN VARCHAR2
21788 ,p_actual_flag IN OUT VARCHAR2
21789 ,p_balance_type_code OUT VARCHAR2
21790 ,p_gain_or_loss_ref OUT VARCHAR2
21791
21792 --Journal entry Line Description
21793 , p_source_3 IN VARCHAR2
21794 --Federal Fund Category
21795 , p_source_7 IN VARCHAR2
21796 --Federal Fund Expired Status
21797 , p_source_8 IN VARCHAR2
21798 --Budget Account
21799 , p_source_9 IN NUMBER
21800 --Main Or Backing Code
21801 , p_source_13 IN VARCHAR2
21802 --Accounting Reversal Flag
21803 , p_source_15 IN VARCHAR2
21804 --Distribution Link Type
21805 , p_source_17 IN VARCHAR2
21806 --PO Distribution Identifier
21807 , p_source_19 IN NUMBER
21808 --PO Header Identifier
21809 , p_source_20 IN NUMBER
21810 --Applied To Application Identifier
21811 , p_source_21 IN NUMBER
21812 --Applied To Distribution Link Type
21813 , p_source_22 IN VARCHAR2
21814 --Applied To Entity Code
21815 , p_source_23 IN VARCHAR2
21816 --Applied To Distribution Identifier 1
21817 , p_source_24 IN NUMBER
21818 --Applied To Header Identifier 1
21819 , p_source_25 IN NUMBER
21820 --Entered Amount
21821 , p_source_26 IN NUMBER
21822 --Currency Code
21823 , p_source_27 IN VARCHAR2
21824 --Accounted Amount
21825 , p_source_28 IN NUMBER
21826 --PO Encumbrance Upgrade Option
21827 , p_source_29 IN VARCHAR2
21828 --JFMIP Reference
21829 , p_source_31 IN VARCHAR2
21830 --PO Upgrade Encumbrance Type Identifier
21831 , p_source_32 IN NUMBER
21832 --Allocated to Main Document Distribution Type
21833 , p_source_33 IN VARCHAR2
21834 --Allocated to Main Document Distribution Identifier
21835 , p_source_34 IN NUMBER
21836 --Currency Conversion Date
21837 , p_source_35 IN DATE
21838 --Currency Conversion Rate
21839 , p_source_36 IN NUMBER
21840 --Currency Conversion Type
21841 , p_source_37 IN VARCHAR2
21842 )
21843 IS
21844
21845 l_component_type VARCHAR2(80);
21846 l_component_code VARCHAR2(30);
21847 l_component_type_code VARCHAR2(1);
21848 l_component_appl_id INTEGER;
21849 l_amb_context_code VARCHAR2(30);
21850 l_entity_code VARCHAR2(30);
21851 l_event_class_code VARCHAR2(30);
21852 l_ae_header_id NUMBER;
21853 l_event_type_code VARCHAR2(30);
21854 l_line_definition_code VARCHAR2(30);
21855 l_line_definition_owner_code VARCHAR2(1);
21856 --
21857 -- adr variables
21858 l_segment VARCHAR2(30);
21859 l_ccid NUMBER;
21860 l_adr_transaction_coa_id NUMBER;
21861 l_adr_accounting_coa_id NUMBER;
21862 l_adr_flexfield_segment_code VARCHAR2(30);
21863 l_adr_flex_value_set_id NUMBER;
21864 l_adr_value_type_code VARCHAR2(30);
21865 l_adr_value_combination_id NUMBER;
21866 l_adr_value_segment_code VARCHAR2(30);
21867
21868 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21869 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21870 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21871 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21872
21873 -- 4262811 Variables ------------------------------------------------------------------------------------------
21874 l_entered_amt_idx NUMBER;
21875 l_accted_amt_idx NUMBER;
21876 l_acc_rev_flag VARCHAR2(1);
21877 l_accrual_line_num NUMBER;
21878 l_tmp_amt NUMBER;
21879 l_acc_rev_natural_side_code VARCHAR2(1);
21880
21881 l_num_entries NUMBER;
21882 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21883 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21884 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21885 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21886 l_recog_line_1 NUMBER;
21887 l_recog_line_2 NUMBER;
21888
21889 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21890 l_bflow_applied_to_amt NUMBER; -- 5132302
21891 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21892
21893 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21894
21895 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21896 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21897
21898 ---------------------------------------------------------------------------------------------------------------
21899
21900
21901 --
21902 -- bulk performance
21903 --
21904 l_balance_type_code VARCHAR2(1);
21905 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21906 l_log_module VARCHAR2(240);
21907
21908 --
21909 -- Upgrade strategy
21910 --
21911 l_actual_upg_option VARCHAR2(1);
21912 l_enc_upg_option VARCHAR2(1);
21913
21914 --
21915 BEGIN
21916 --
21917 IF g_log_enabled THEN
21918 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
21919 END IF;
21920 --
21921 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21922
21923 trace
21924 (p_msg => 'BEGIN of AcctLineType_45'
21925 ,p_level => C_LEVEL_PROCEDURE
21926 ,p_module => l_log_module);
21927
21928 END IF;
21929 --
21930 l_component_type := 'AMB_JLT';
21931 l_component_code := 'FV_REINSTATE_REQ_PO_REVERSE_DR';
21932 l_component_type_code := 'S';
21933 l_component_appl_id := 201;
21934 l_amb_context_code := 'DEFAULT';
21935 l_entity_code := 'PURCHASE_ORDER';
21936 l_event_class_code := 'PO_PA';
21940 --
21937 l_event_type_code := 'PO_PA_ALL';
21938 l_line_definition_owner_code := 'S';
21939 l_line_definition_code := 'FV_PO_ALL';
21941 l_balance_type_code := 'A';
21942 l_segment := NULL;
21943 l_ccid := NULL;
21944 l_adr_transaction_coa_id := NULL;
21945 l_adr_accounting_coa_id := NULL;
21946 l_adr_flexfield_segment_code := NULL;
21947 l_adr_flex_value_set_id := NULL;
21948 l_adr_value_type_code := NULL;
21949 l_adr_value_combination_id := NULL;
21950 l_adr_value_segment_code := NULL;
21951
21952 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21953 l_bflow_class_code := ''; -- 4219869 Business Flow
21954 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21955 l_budgetary_control_flag := 'Y';
21956
21957 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21958 l_bflow_applied_to_amt := NULL; -- 5132302
21959 l_entered_amt_idx := NULL; -- 4262811
21960 l_accted_amt_idx := NULL; -- 4262811
21961 l_acc_rev_flag := NULL; -- 4262811
21962 l_accrual_line_num := NULL; -- 4262811
21963 l_tmp_amt := NULL; -- 4262811
21964 --
21965
21966 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21967 l_balance_type_code <> 'B' THEN
21968 IF NVL(
21969 xla_ae_sources_pkg.GetSystemSourceChar(
21970 p_source_code => 'XLA_EVENT_TYPE_CODE'
21971 , p_source_type_code => 'Y'
21972 , p_source_application_id => 602
21973 ),'
21974 ') = 'PO_PA_CANCELLED' AND
21975 NVL(p_source_13,'
21976 ') = 'B_REQ'
21977 THEN
21978
21979 --
21980 XLA_AE_LINES_PKG.SetNewLine;
21981
21982 p_balance_type_code := l_balance_type_code;
21983 -- set the flag so later we will know whether the gain loss line needs to be created
21984
21985 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21986 p_actual_flag :='A';
21987 END IF;
21988
21989 --
21990 -- bulk performance
21991 --
21992 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21993 p_header_num => 0); -- 4262811
21994 --
21995 -- set accounting line options
21996 --
21997 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21998 p_natural_side_code => 'D'
21999 , p_gain_or_loss_flag => 'N'
22000 , p_gl_transfer_mode_code => 'S'
22001 , p_acct_entry_type_code => 'A'
22002 , p_switch_side_flag => 'N'
22003 , p_merge_duplicate_code => 'N'
22004 );
22005 --
22006 l_acc_rev_natural_side_code := 'C'; -- 4262811
22007 --
22008 --
22009 -- set accounting line type info
22010 --
22011 xla_ae_lines_pkg.SetAcctLineType
22012 (p_component_type => l_component_type
22013 ,p_event_type_code => l_event_type_code
22014 ,p_line_definition_owner_code => l_line_definition_owner_code
22015 ,p_line_definition_code => l_line_definition_code
22016 ,p_accounting_line_code => l_component_code
22017 ,p_accounting_line_type_code => l_component_type_code
22018 ,p_accounting_line_appl_id => l_component_appl_id
22019 ,p_amb_context_code => l_amb_context_code
22020 ,p_entity_code => l_entity_code
22021 ,p_event_class_code => l_event_class_code);
22022 --
22023 -- set accounting class
22024 --
22025 xla_ae_lines_pkg.SetAcctClass(
22026 p_accounting_class_code => 'REQUISITION'
22027 , p_ae_header_id => l_ae_header_id
22028 );
22029
22030 --
22031 -- set rounding class
22032 --
22033 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22034 'REQUISITION';
22035
22036 --
22037 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22038 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22039 --
22040 -- bulk performance
22041 --
22042 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22043
22044 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22045 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22046
22047 -- 4955764
22048 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22049 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22050
22051 -- 4458381 Public Sector Enh
22052
22053 --
22054 -- set accounting attributes for the line type
22055 --
22056 l_entered_amt_idx := 23;
22057 l_accted_amt_idx := 28;
22058 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22059 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22060 l_rec_acct_attrs.array_char_value(1) := p_source_15;
22061 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
22062 l_rec_acct_attrs.array_num_value(2) :=
22063 xla_ae_sources_pkg.GetSystemSourceNum(
22064 p_source_code => 'XLA_EVENT_APPL_ID'
22065 , p_source_type_code => 'Y'
22066 , p_source_application_id => 602
22067 );
22071 l_rec_acct_attrs.array_char_value(4) :=
22068 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
22069 l_rec_acct_attrs.array_char_value(3) := p_source_33;
22070 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
22072 xla_ae_sources_pkg.GetSystemSourceChar(
22073 p_source_code => 'XLA_ENTITY_CODE'
22074 , p_source_type_code => 'Y'
22075 , p_source_application_id => 602
22076 );
22077 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
22078 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
22079 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
22080 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
22081 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
22082 l_rec_acct_attrs.array_num_value(7) := p_source_21;
22083 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22084 l_rec_acct_attrs.array_char_value(8) := p_source_22;
22085 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
22086 l_rec_acct_attrs.array_char_value(9) := p_source_23;
22087 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
22088 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
22089 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22090 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
22091 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
22092 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
22093 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
22094 l_rec_acct_attrs.array_char_value(13) := p_source_17;
22095 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
22096 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
22097 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
22098 l_rec_acct_attrs.array_num_value(15) := p_source_26;
22099 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
22100 l_rec_acct_attrs.array_char_value(16) := p_source_27;
22101 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
22102 l_rec_acct_attrs.array_num_value(17) := p_source_28;
22103 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
22104 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
22105 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
22106 l_rec_acct_attrs.array_num_value(19) := p_source_26;
22107 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
22108 l_rec_acct_attrs.array_char_value(20) := p_source_27;
22109 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
22110 l_rec_acct_attrs.array_num_value(21) := p_source_28;
22111 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
22112 l_rec_acct_attrs.array_char_value(22) := p_source_29;
22113 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
22114 l_rec_acct_attrs.array_num_value(23) := p_source_26;
22115 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
22116 l_rec_acct_attrs.array_char_value(24) := p_source_27;
22117 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
22118 l_rec_acct_attrs.array_date_value(25) := p_source_35;
22119 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
22120 l_rec_acct_attrs.array_num_value(26) := p_source_36;
22121 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
22122 l_rec_acct_attrs.array_char_value(27) := p_source_37;
22123 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
22124 l_rec_acct_attrs.array_num_value(28) := p_source_28;
22125 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
22126 l_rec_acct_attrs.array_char_value(29) := p_source_31;
22127 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
22128 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
22129 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
22130 l_rec_acct_attrs.array_char_value(31) := p_source_22;
22131 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
22132 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_19);
22133 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
22134 l_rec_acct_attrs.array_num_value(33) := p_source_32;
22135 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
22136 l_rec_acct_attrs.array_num_value(34) := p_source_32;
22137
22138 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22139 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22140
22141 ---------------------------------------------------------------------------------------------------------------
22142 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22143 ---------------------------------------------------------------------------------------------------------------
22144 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22145
22146 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22147 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22148
22149 IF xla_accounting_cache_pkg.GetValueChar
22150 (p_source_code => 'LEDGER_CATEGORY_CODE'
22151 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22152 AND l_bflow_method_code = 'PRIOR_ENTRY'
22153 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22154 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22155 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22156 )
22157 THEN
22161 ,p_balance_type => l_balance_type_code);
22158 xla_ae_lines_pkg.BflowUpgEntry
22159 (p_business_method_code => l_bflow_method_code
22160 ,p_business_class_code => l_bflow_class_code
22162 ELSE
22163 NULL;
22164 -- No business flow processing for business flow method of NONE.
22165 END IF;
22166
22167 --
22168 -- call analytical criteria
22169 --
22170
22171 --
22172 -- call description
22173 --
22174
22175 xla_ae_lines_pkg.SetLineDescription(
22176 p_ae_header_id => l_ae_header_id
22177 ,p_description => Description_2 (
22178 p_application_id => p_application_id
22179 , p_ae_header_id => l_ae_header_id
22180 , p_source_3 => p_source_3
22181 )
22182 );
22183
22184
22185 --
22186 -- call ADRs
22187 -- Bug 4922099
22188 --
22189 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22190 (NVL(l_actual_upg_option, 'N') = 'O') OR
22191 (NVL(l_enc_upg_option, 'N') = 'O')
22192 )
22193 THEN
22194 NULL;
22195 --
22196 --
22197
22198 l_ccid := AcctDerRule_9(
22199 p_application_id => p_application_id
22200 , p_ae_header_id => l_ae_header_id
22201 , p_source_9 => p_source_9
22202 , x_transaction_coa_id => l_adr_transaction_coa_id
22203 , x_accounting_coa_id => l_adr_accounting_coa_id
22204 , x_value_type_code => l_adr_value_type_code
22205 , p_side => 'NA'
22206 );
22207
22208 xla_ae_lines_pkg.set_ccid(
22209 p_code_combination_id => l_ccid
22210 , p_value_type_code => l_adr_value_type_code
22211 , p_transaction_coa_id => l_adr_transaction_coa_id
22212 , p_accounting_coa_id => l_adr_accounting_coa_id
22213 , p_adr_code => 'FV_ACCOUNT_RULE'
22214 , p_adr_type_code => 'S'
22215 , p_component_type => l_component_type
22216 , p_component_code => l_component_code
22217 , p_component_type_code => l_component_type_code
22218 , p_component_appl_id => l_component_appl_id
22219 , p_amb_context_code => l_amb_context_code
22220 , p_side => 'NA'
22221 );
22222
22223
22224 l_segment := AcctDerRule_5(
22225 p_application_id => p_application_id
22226 , p_ae_header_id => l_ae_header_id
22227 , p_source_7 => p_source_7
22228 , p_source_8 => p_source_8
22229 , x_transaction_coa_id => l_adr_transaction_coa_id
22230 , x_accounting_coa_id => l_adr_accounting_coa_id
22231 , x_flexfield_segment_code => l_adr_flexfield_segment_code
22232 , x_flex_value_set_id => l_adr_flex_value_set_id
22233 , x_value_type_code => l_adr_value_type_code
22234 , x_value_combination_id => l_adr_value_combination_id
22235 , x_value_segment_code => l_adr_value_segment_code
22236 , p_side => 'NA'
22237 , p_override_seg_flag => 'Y'
22238 );
22239
22240 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
22241
22242 xla_ae_lines_pkg.set_segment(
22243 p_to_segment_code => 'GL_ACCOUNT'
22244 , p_segment_value => l_segment
22245 , p_from_segment_code => l_adr_value_segment_code
22246 , p_from_combination_id => l_adr_value_combination_id
22247 , p_value_type_code => l_adr_value_type_code
22248 , p_transaction_coa_id => l_adr_transaction_coa_id
22249 , p_accounting_coa_id => l_adr_accounting_coa_id
22250 , p_flexfield_segment_code => l_adr_flexfield_segment_code
22251 , p_flex_value_set_id => l_adr_flex_value_set_id
22252 , p_adr_code => 'FV_46X002'
22253 , p_adr_type_code => 'S'
22254 , p_component_type => l_component_type
22255 , p_component_code => l_component_code
22256 , p_component_type_code => l_component_type_code
22257 , p_component_appl_id => l_component_appl_id
22258 , p_amb_context_code => l_amb_context_code
22259 , p_entity_code => 'PURCHASE_ORDER'
22260 , p_event_class_code => 'PO_PA'
22261 , p_side => 'NA'
22262 );
22263
22264 END IF;
22265
22266 --
22267 --
22268 END IF;
22269 --
22270 -- Bug 4922099
22271 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22272 (NVL(l_enc_upg_option, 'N') = 'O')
22273 ) AND
22274 (l_bflow_method_code = 'PRIOR_ENTRY')
22275 )
22276 THEN
22277 IF
22278 --
22279 1 = 2
22280 --
22281 THEN
22282 xla_accounting_err_pkg.build_message
22283 (p_appli_s_name => 'XLA'
22284 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22285 ,p_token_1 => 'LINE_NUMBER'
22286 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22287 ,p_token_2 => 'LINE_TYPE_NAME'
22288 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22289 l_component_type
22290 ,l_component_code
22291 ,l_component_type_code
22292 ,l_component_appl_id
22293 ,l_amb_context_code
22294 ,l_entity_code
22295 ,l_event_class_code
22296 )
22297 ,p_token_3 => 'OWNER'
22298 ,p_value_3 => xla_lookups_pkg.get_meaning(
22299 p_lookup_type => 'XLA_OWNER_TYPE'
22300 ,p_lookup_code => l_component_type_code
22301 )
22302 ,p_token_4 => 'PRODUCT_NAME'
22303 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22304 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22305 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22306 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22307 ,p_ae_header_id => NULL
22308 );
22309
22310 IF (C_LEVEL_ERROR>= g_log_level) THEN
22311 trace
22312 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22313 ,p_level => C_LEVEL_ERROR
22314 ,p_module => l_log_module);
22315 END IF;
22316 END IF;
22317 END IF;
22318 --
22319 --
22320 ------------------------------------------------------------------------------------------------
22321 -- 4219869 Business Flow
22322 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22323 -- Prior Entry. Currently, the following code is always generated.
22324 ------------------------------------------------------------------------------------------------
22325 XLA_AE_LINES_PKG.ValidateCurrentLine;
22326
22327 ------------------------------------------------------------------------------------
22328 -- 4219869 Business Flow
22329 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22330 ------------------------------------------------------------------------------------
22331 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22332
22333 ----------------------------------------------------------------------------------
22334 -- 4219869 Business Flow
22335 -- Update journal entry status -- Need to generate this within IF <condition>
22336 ----------------------------------------------------------------------------------
22337 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22338 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22339 ,p_balance_type_code => l_balance_type_code
22340 );
22341
22342 -------------------------------------------------------------------------------------------
22343 -- 4262811 - Generate the Accrual Reversal lines
22344 -------------------------------------------------------------------------------------------
22345 BEGIN
22346 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22347 (g_array_event(p_event_id).array_value_num('header_index'));
22348 IF l_acc_rev_flag IS NULL THEN
22349 l_acc_rev_flag := 'N';
22350 END IF;
22351 EXCEPTION
22352 WHEN OTHERS THEN
22353 l_acc_rev_flag := 'N';
22354 END;
22355 --
22356 IF (l_acc_rev_flag = 'Y') THEN
22357
22358 -- 4645092 ------------------------------------------------------------------------------
22359 -- To allow MPA report to determine if it should generate report process
22360 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22361 ------------------------------------------------------------------------------------------
22362
22363 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22364 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22365
22366 --
22367 -- Update the line information that should be overwritten
22368 --
22369 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22370 p_header_num => 1);
22371 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22372
22373 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22374
22375 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22376 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22377 END IF;
22378
22379 --
22380 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22381 --
22382 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22383 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22384 ELSE
22385 ---------------------------------------------------------------------------------------------------
22386 -- 4262811a Switch Sign
22387 ---------------------------------------------------------------------------------------------------
22388 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22389 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22390 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22391 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22392 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22393 -- 5132302
22394 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22395 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22396
22397 END IF;
22398
22399 -- 4955764
22400 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22401 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22402
22403
22404 XLA_AE_LINES_PKG.ValidateCurrentLine;
22405 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22406
22410
22407 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22408 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22409 ,p_balance_type_code => l_balance_type_code);
22411 END IF;
22412
22413 -----------------------------------------------------------------------------------------
22414 -- 4262811 Multiperiod Accounting
22415 -----------------------------------------------------------------------------------------
22416 -- No MPA option is assigned.
22417
22418
22419 END IF;
22420 END IF;
22421 --
22422
22423 --
22424 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22425 trace
22426 (p_msg => 'END of AcctLineType_45'
22427 ,p_level => C_LEVEL_PROCEDURE
22428 ,p_module => l_log_module);
22429 END IF;
22430 --
22431 EXCEPTION
22432 WHEN xla_exceptions_pkg.application_exception THEN
22433 RAISE;
22434 WHEN OTHERS THEN
22435 xla_exceptions_pkg.raise_message
22436 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_45');
22437 END AcctLineType_45;
22438 --
22439
22440 ---------------------------------------
22441 --
22442 -- PRIVATE FUNCTION
22443 -- AcctLineType_46
22444 --
22445 ---------------------------------------
22446 PROCEDURE AcctLineType_46 (
22447 p_application_id IN NUMBER
22448 ,p_event_id IN NUMBER
22449 ,p_calculate_acctd_flag IN VARCHAR2
22450 ,p_calculate_g_l_flag IN VARCHAR2
22451 ,p_actual_flag IN OUT VARCHAR2
22452 ,p_balance_type_code OUT VARCHAR2
22453 ,p_gain_or_loss_ref OUT VARCHAR2
22454
22455 --Budget Account
22456 , p_source_9 IN NUMBER
22457 --Main Or Backing Code
22458 , p_source_13 IN VARCHAR2
22459 --Accounting Reversal Flag
22460 , p_source_15 IN VARCHAR2
22461 --Distribution Link Type
22462 , p_source_17 IN VARCHAR2
22463 --PO Distribution Identifier
22464 , p_source_19 IN NUMBER
22465 --Applied To Application Identifier
22466 , p_source_21 IN NUMBER
22467 --Applied To Distribution Link Type
22468 , p_source_22 IN VARCHAR2
22469 --Applied To Entity Code
22470 , p_source_23 IN VARCHAR2
22471 --Applied To Distribution Identifier 1
22472 , p_source_24 IN NUMBER
22473 --Applied To Header Identifier 1
22474 , p_source_25 IN NUMBER
22475 --Entered Amount
22476 , p_source_26 IN NUMBER
22477 --Currency Code
22478 , p_source_27 IN VARCHAR2
22479 --Accounted Amount
22480 , p_source_28 IN NUMBER
22481 --PO Encumbrance Upgrade Option
22482 , p_source_29 IN VARCHAR2
22483 --PO Upgrade Encumbrance Type Identifier
22484 , p_source_32 IN NUMBER
22485 --PO Release Identifier
22486 , p_source_41 IN NUMBER
22487 )
22488 IS
22489
22490 l_component_type VARCHAR2(80);
22491 l_component_code VARCHAR2(30);
22492 l_component_type_code VARCHAR2(1);
22493 l_component_appl_id INTEGER;
22494 l_amb_context_code VARCHAR2(30);
22495 l_entity_code VARCHAR2(30);
22496 l_event_class_code VARCHAR2(30);
22497 l_ae_header_id NUMBER;
22498 l_event_type_code VARCHAR2(30);
22499 l_line_definition_code VARCHAR2(30);
22500 l_line_definition_owner_code VARCHAR2(1);
22501 --
22502 -- adr variables
22503 l_segment VARCHAR2(30);
22504 l_ccid NUMBER;
22505 l_adr_transaction_coa_id NUMBER;
22506 l_adr_accounting_coa_id NUMBER;
22507 l_adr_flexfield_segment_code VARCHAR2(30);
22508 l_adr_flex_value_set_id NUMBER;
22509 l_adr_value_type_code VARCHAR2(30);
22510 l_adr_value_combination_id NUMBER;
22511 l_adr_value_segment_code VARCHAR2(30);
22512
22513 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22514 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22515 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22516 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22517
22518 -- 4262811 Variables ------------------------------------------------------------------------------------------
22519 l_entered_amt_idx NUMBER;
22520 l_accted_amt_idx NUMBER;
22521 l_acc_rev_flag VARCHAR2(1);
22522 l_accrual_line_num NUMBER;
22523 l_tmp_amt NUMBER;
22524 l_acc_rev_natural_side_code VARCHAR2(1);
22525
22526 l_num_entries NUMBER;
22527 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22528 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22529 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22530 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22531 l_recog_line_1 NUMBER;
22532 l_recog_line_2 NUMBER;
22533
22534 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22535 l_bflow_applied_to_amt NUMBER; -- 5132302
22536 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22537
22538 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22539
22540 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22541 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22542
22543 ---------------------------------------------------------------------------------------------------------------
22544
22545
22546 --
22547 -- bulk performance
22548 --
22549 l_balance_type_code VARCHAR2(1);
22550 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22551 l_log_module VARCHAR2(240);
22552
22553 --
22554 -- Upgrade strategy
22555 --
22556 l_actual_upg_option VARCHAR2(1);
22557 l_enc_upg_option VARCHAR2(1);
22558
22559 --
22560 BEGIN
22561 --
22562 IF g_log_enabled THEN
22563 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
22564 END IF;
22565 --
22566 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22567
22568 trace
22569 (p_msg => 'BEGIN of AcctLineType_46'
22570 ,p_level => C_LEVEL_PROCEDURE
22571 ,p_module => l_log_module);
22572
22573 END IF;
22574 --
22575 l_component_type := 'AMB_JLT';
22576 l_component_code := 'FV_REL_CANCEL_CR';
22577 l_component_type_code := 'S';
22578 l_component_appl_id := 201;
22579 l_amb_context_code := 'DEFAULT';
22580 l_entity_code := 'RELEASE';
22581 l_event_class_code := 'RELEASE';
22582 l_event_type_code := 'RELEASE_ALL';
22583 l_line_definition_owner_code := 'S';
22584 l_line_definition_code := 'FV_RELEASE_ALL';
22585 --
22586 l_balance_type_code := 'A';
22587 l_segment := NULL;
22588 l_ccid := NULL;
22589 l_adr_transaction_coa_id := NULL;
22590 l_adr_accounting_coa_id := NULL;
22591 l_adr_flexfield_segment_code := NULL;
22592 l_adr_flex_value_set_id := NULL;
22593 l_adr_value_type_code := NULL;
22594 l_adr_value_combination_id := NULL;
22595 l_adr_value_segment_code := NULL;
22596
22597 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
22598 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
22599 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
22600 l_budgetary_control_flag := 'Y';
22601
22602 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22603 l_bflow_applied_to_amt := NULL; -- 5132302
22604 l_entered_amt_idx := NULL; -- 4262811
22605 l_accted_amt_idx := NULL; -- 4262811
22606 l_acc_rev_flag := NULL; -- 4262811
22607 l_accrual_line_num := NULL; -- 4262811
22608 l_tmp_amt := NULL; -- 4262811
22609 --
22610
22611 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22612 l_balance_type_code <> 'B' THEN
22613 IF (NVL(
22614 xla_ae_sources_pkg.GetSystemSourceChar(
22615 p_source_code => 'XLA_EVENT_TYPE_CODE'
22616 , p_source_type_code => 'Y'
22617 , p_source_application_id => 602
22618 ),'
22619 ') = 'RELEASE_CANCELLED' OR
22620 NVL(
22621 xla_ae_sources_pkg.GetSystemSourceChar(
22622 p_source_code => 'XLA_EVENT_TYPE_CODE'
22623 , p_source_type_code => 'Y'
22624 , p_source_application_id => 602
22625 ),'
22626 ') = 'RELEASE_CR_MEMO_CANCELLED') AND
22627 NVL(p_source_13,'
22628 ') = 'M'
22629 THEN
22630
22631 --
22632 XLA_AE_LINES_PKG.SetNewLine;
22633
22634 p_balance_type_code := l_balance_type_code;
22635 -- set the flag so later we will know whether the gain loss line needs to be created
22636
22637 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22638 p_actual_flag :='A';
22639 END IF;
22640
22641 --
22642 -- bulk performance
22643 --
22644 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22645 p_header_num => 0); -- 4262811
22646 --
22647 -- set accounting line options
22648 --
22649 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22650 p_natural_side_code => 'C'
22651 , p_gain_or_loss_flag => 'N'
22652 , p_gl_transfer_mode_code => 'S'
22653 , p_acct_entry_type_code => 'A'
22654 , p_switch_side_flag => 'N'
22655 , p_merge_duplicate_code => 'N'
22656 );
22657 --
22658 l_acc_rev_natural_side_code := 'D'; -- 4262811
22659 --
22660 --
22661 -- set accounting line type info
22662 --
22663 xla_ae_lines_pkg.SetAcctLineType
22664 (p_component_type => l_component_type
22668 ,p_accounting_line_code => l_component_code
22665 ,p_event_type_code => l_event_type_code
22666 ,p_line_definition_owner_code => l_line_definition_owner_code
22667 ,p_line_definition_code => l_line_definition_code
22669 ,p_accounting_line_type_code => l_component_type_code
22670 ,p_accounting_line_appl_id => l_component_appl_id
22671 ,p_amb_context_code => l_amb_context_code
22672 ,p_entity_code => l_entity_code
22673 ,p_event_class_code => l_event_class_code);
22674 --
22675 -- set accounting class
22676 --
22677 xla_ae_lines_pkg.SetAcctClass(
22678 p_accounting_class_code => 'PURCHASE_ORDER'
22679 , p_ae_header_id => l_ae_header_id
22680 );
22681
22682 --
22683 -- set rounding class
22684 --
22685 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22686 'PURCHASE_ORDER';
22687
22688 --
22689 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22690 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22691 --
22692 -- bulk performance
22693 --
22694 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22695
22696 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22697 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22698
22699 -- 4955764
22700 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22701 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22702
22703 -- 4458381 Public Sector Enh
22704
22705 --
22706 -- set accounting attributes for the line type
22707 --
22708 l_entered_amt_idx := 23;
22709 l_accted_amt_idx := 25;
22710 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22711 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22712 l_rec_acct_attrs.array_char_value(1) := p_source_15;
22713 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
22714 l_rec_acct_attrs.array_num_value(2) :=
22715 xla_ae_sources_pkg.GetSystemSourceNum(
22716 p_source_code => 'XLA_EVENT_APPL_ID'
22717 , p_source_type_code => 'Y'
22718 , p_source_application_id => 602
22719 );
22720 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
22721 l_rec_acct_attrs.array_char_value(3) := p_source_17;
22722 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
22723 l_rec_acct_attrs.array_char_value(4) :=
22724 xla_ae_sources_pkg.GetSystemSourceChar(
22725 p_source_code => 'XLA_ENTITY_CODE'
22726 , p_source_type_code => 'Y'
22727 , p_source_application_id => 602
22728 );
22729 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
22730 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
22731 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
22732 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
22733 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
22734 l_rec_acct_attrs.array_num_value(7) := p_source_21;
22735 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22736 l_rec_acct_attrs.array_char_value(8) := p_source_22;
22737 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
22738 l_rec_acct_attrs.array_char_value(9) := p_source_23;
22739 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
22740 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
22741 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22742 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
22743 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
22744 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
22745 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
22746 l_rec_acct_attrs.array_char_value(13) := p_source_17;
22747 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
22748 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
22749 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
22750 l_rec_acct_attrs.array_num_value(15) := p_source_26;
22751 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
22752 l_rec_acct_attrs.array_char_value(16) := p_source_27;
22753 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
22754 l_rec_acct_attrs.array_num_value(17) := p_source_28;
22755 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
22756 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
22757 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
22758 l_rec_acct_attrs.array_num_value(19) := p_source_26;
22759 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
22760 l_rec_acct_attrs.array_char_value(20) := p_source_27;
22761 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
22762 l_rec_acct_attrs.array_num_value(21) := p_source_28;
22763 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
22764 l_rec_acct_attrs.array_char_value(22) := p_source_29;
22765 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
22766 l_rec_acct_attrs.array_num_value(23) := p_source_26;
22767 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
22768 l_rec_acct_attrs.array_char_value(24) := p_source_27;
22769 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
22770 l_rec_acct_attrs.array_num_value(25) := p_source_28;
22771 l_rec_acct_attrs.array_acct_attr_code(26) := 'REVERSED_DISTRIBUTION_ID1';
22772 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_24);
22773 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_TYPE';
22774 l_rec_acct_attrs.array_char_value(27) := p_source_22;
22775 l_rec_acct_attrs.array_acct_attr_code(28) := 'UPG_CR_ENC_TYPE_ID';
22776 l_rec_acct_attrs.array_num_value(28) := p_source_32;
22777 l_rec_acct_attrs.array_acct_attr_code(29) := 'UPG_DR_ENC_TYPE_ID';
22778 l_rec_acct_attrs.array_num_value(29) := p_source_32;
22779
22780 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22781 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22782
22783 ---------------------------------------------------------------------------------------------------------------
22784 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22785 ---------------------------------------------------------------------------------------------------------------
22786 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22787
22788 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22789 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22790
22791 IF xla_accounting_cache_pkg.GetValueChar
22792 (p_source_code => 'LEDGER_CATEGORY_CODE'
22793 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22794 AND l_bflow_method_code = 'PRIOR_ENTRY'
22795 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22796 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22797 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22798 )
22799 THEN
22800 xla_ae_lines_pkg.BflowUpgEntry
22801 (p_business_method_code => l_bflow_method_code
22802 ,p_business_class_code => l_bflow_class_code
22803 ,p_balance_type => l_balance_type_code);
22804 ELSE
22805 NULL;
22806 XLA_AE_LINES_PKG.business_flow_validation(
22807 p_business_method_code => l_bflow_method_code
22808 ,p_business_class_code => l_bflow_class_code
22809 ,p_inherit_description_flag => l_inherit_desc_flag);
22810 END IF;
22811
22812 --
22813 -- call analytical criteria
22814 --
22815 -- Inherited Analytical Criteria for business flow method of Prior Entry.
22816 --
22817 -- call description
22818 --
22819 -- No description or it is inherited.
22820 --
22821 -- call ADRs
22822 -- Bug 4922099
22823 --
22824 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22825 (NVL(l_actual_upg_option, 'N') = 'O') OR
22826 (NVL(l_enc_upg_option, 'N') = 'O')
22827 )
22828 THEN
22829 NULL;
22830 --
22831 --
22832
22833 --
22834 --
22835 END IF;
22836 --
22837 -- Bug 4922099
22838 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22839 (NVL(l_enc_upg_option, 'N') = 'O')
22840 ) AND
22841 (l_bflow_method_code = 'PRIOR_ENTRY')
22842 )
22843 THEN
22844 IF
22845 --
22846 1 = 1
22847 --
22848 THEN
22849 xla_accounting_err_pkg.build_message
22850 (p_appli_s_name => 'XLA'
22851 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22852 ,p_token_1 => 'LINE_NUMBER'
22853 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22854 ,p_token_2 => 'LINE_TYPE_NAME'
22855 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22856 l_component_type
22857 ,l_component_code
22858 ,l_component_type_code
22859 ,l_component_appl_id
22860 ,l_amb_context_code
22861 ,l_entity_code
22862 ,l_event_class_code
22863 )
22864 ,p_token_3 => 'OWNER'
22865 ,p_value_3 => xla_lookups_pkg.get_meaning(
22866 p_lookup_type => 'XLA_OWNER_TYPE'
22867 ,p_lookup_code => l_component_type_code
22868 )
22869 ,p_token_4 => 'PRODUCT_NAME'
22870 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22871 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22872 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22873 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22874 ,p_ae_header_id => NULL
22875 );
22876
22877 IF (C_LEVEL_ERROR>= g_log_level) THEN
22878 trace
22879 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22880 ,p_level => C_LEVEL_ERROR
22881 ,p_module => l_log_module);
22882 END IF;
22883 END IF;
22884 END IF;
22885 --
22886 --
22887 ------------------------------------------------------------------------------------------------
22888 -- 4219869 Business Flow
22889 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22890 -- Prior Entry. Currently, the following code is always generated.
22891 ------------------------------------------------------------------------------------------------
22892 -- No ValidateCurrentLine for business flow method of Prior Entry
22893
22894 ------------------------------------------------------------------------------------
22895 -- 4219869 Business Flow
22896 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22897 ------------------------------------------------------------------------------------
22898 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22899
22900 ----------------------------------------------------------------------------------
22901 -- 4219869 Business Flow
22902 -- Update journal entry status -- Need to generate this within IF <condition>
22903 ----------------------------------------------------------------------------------
22904 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22905 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22906 ,p_balance_type_code => l_balance_type_code
22907 );
22908
22909 -------------------------------------------------------------------------------------------
22910 -- 4262811 - Generate the Accrual Reversal lines
22911 -------------------------------------------------------------------------------------------
22912 BEGIN
22913 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22914 (g_array_event(p_event_id).array_value_num('header_index'));
22915 IF l_acc_rev_flag IS NULL THEN
22916 l_acc_rev_flag := 'N';
22917 END IF;
22918 EXCEPTION
22919 WHEN OTHERS THEN
22920 l_acc_rev_flag := 'N';
22921 END;
22922 --
22923 IF (l_acc_rev_flag = 'Y') THEN
22924
22925 -- 4645092 ------------------------------------------------------------------------------
22926 -- To allow MPA report to determine if it should generate report process
22927 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22928 ------------------------------------------------------------------------------------------
22929
22930 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22931 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22932
22933 --
22934 -- Update the line information that should be overwritten
22935 --
22936 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22937 p_header_num => 1);
22938 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22939
22940 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22941
22942 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22943 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22944 END IF;
22945
22946 --
22947 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22948 --
22949 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22950 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22951 ELSE
22952 ---------------------------------------------------------------------------------------------------
22953 -- 4262811a Switch Sign
22954 ---------------------------------------------------------------------------------------------------
22955 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22956 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22957 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22958 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22959 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22960 -- 5132302
22961 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22962 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22963
22964 END IF;
22965
22966 -- 4955764
22967 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22968 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22969
22970
22971 XLA_AE_LINES_PKG.ValidateCurrentLine;
22972 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22973
22974 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22975 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22976 ,p_balance_type_code => l_balance_type_code);
22977
22978 END IF;
22979
22980 -----------------------------------------------------------------------------------------
22981 -- 4262811 Multiperiod Accounting
22982 -----------------------------------------------------------------------------------------
22983 -- No MPA option is assigned.
22984
22985
22986 END IF;
22987 END IF;
22988 --
22989
22990 --
22991 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22992 trace
22993 (p_msg => 'END of AcctLineType_46'
22994 ,p_level => C_LEVEL_PROCEDURE
22995 ,p_module => l_log_module);
22996 END IF;
22997 --
22998 EXCEPTION
22999 WHEN xla_exceptions_pkg.application_exception THEN
23000 RAISE;
23001 WHEN OTHERS THEN
23002 xla_exceptions_pkg.raise_message
23003 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_46');
23004 END AcctLineType_46;
23005 --
23006
23007 ---------------------------------------
23008 --
23009 -- PRIVATE FUNCTION
23010 -- AcctLineType_47
23011 --
23012 ---------------------------------------
23013 PROCEDURE AcctLineType_47 (
23014 p_application_id IN NUMBER
23015 ,p_event_id IN NUMBER
23016 ,p_calculate_acctd_flag IN VARCHAR2
23017 ,p_calculate_g_l_flag IN VARCHAR2
23018 ,p_actual_flag IN OUT VARCHAR2
23019 ,p_balance_type_code OUT VARCHAR2
23020 ,p_gain_or_loss_ref OUT VARCHAR2
23021
23022 --Budget Account
23023 , p_source_9 IN NUMBER
23024 --Main Or Backing Code
23025 , p_source_13 IN VARCHAR2
23026 --Accounting Reversal Flag
23027 , p_source_15 IN VARCHAR2
23028 --Distribution Link Type
23029 , p_source_17 IN VARCHAR2
23030 --PO Distribution Identifier
23031 , p_source_19 IN NUMBER
23032 --Applied To Application Identifier
23033 , p_source_21 IN NUMBER
23034 --Applied To Distribution Link Type
23035 , p_source_22 IN VARCHAR2
23036 --Applied To Entity Code
23037 , p_source_23 IN VARCHAR2
23038 --Applied To Distribution Identifier 1
23039 , p_source_24 IN NUMBER
23040 --Applied To Header Identifier 1
23041 , p_source_25 IN NUMBER
23042 --Entered Amount
23043 , p_source_26 IN NUMBER
23044 --Currency Code
23045 , p_source_27 IN VARCHAR2
23046 --Accounted Amount
23047 , p_source_28 IN NUMBER
23048 --PO Encumbrance Upgrade Option
23049 , p_source_29 IN VARCHAR2
23050 --PO Upgrade Encumbrance Type Identifier
23051 , p_source_32 IN NUMBER
23052 --PO Release Identifier
23053 , p_source_41 IN NUMBER
23054 )
23055 IS
23056
23057 l_component_type VARCHAR2(80);
23058 l_component_code VARCHAR2(30);
23059 l_component_type_code VARCHAR2(1);
23060 l_component_appl_id INTEGER;
23061 l_amb_context_code VARCHAR2(30);
23062 l_entity_code VARCHAR2(30);
23063 l_event_class_code VARCHAR2(30);
23067 l_line_definition_owner_code VARCHAR2(1);
23064 l_ae_header_id NUMBER;
23065 l_event_type_code VARCHAR2(30);
23066 l_line_definition_code VARCHAR2(30);
23068 --
23069 -- adr variables
23070 l_segment VARCHAR2(30);
23071 l_ccid NUMBER;
23072 l_adr_transaction_coa_id NUMBER;
23073 l_adr_accounting_coa_id NUMBER;
23074 l_adr_flexfield_segment_code VARCHAR2(30);
23075 l_adr_flex_value_set_id NUMBER;
23076 l_adr_value_type_code VARCHAR2(30);
23077 l_adr_value_combination_id NUMBER;
23078 l_adr_value_segment_code VARCHAR2(30);
23079
23080 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23081 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23082 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23083 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23084
23085 -- 4262811 Variables ------------------------------------------------------------------------------------------
23086 l_entered_amt_idx NUMBER;
23087 l_accted_amt_idx NUMBER;
23088 l_acc_rev_flag VARCHAR2(1);
23089 l_accrual_line_num NUMBER;
23090 l_tmp_amt NUMBER;
23091 l_acc_rev_natural_side_code VARCHAR2(1);
23092
23093 l_num_entries NUMBER;
23094 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23095 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23096 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23097 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23098 l_recog_line_1 NUMBER;
23099 l_recog_line_2 NUMBER;
23100
23101 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23102 l_bflow_applied_to_amt NUMBER; -- 5132302
23103 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23104
23105 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23106
23107 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23108 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23109
23110 ---------------------------------------------------------------------------------------------------------------
23111
23112
23113 --
23114 -- bulk performance
23115 --
23116 l_balance_type_code VARCHAR2(1);
23117 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23118 l_log_module VARCHAR2(240);
23119
23120 --
23121 -- Upgrade strategy
23122 --
23123 l_actual_upg_option VARCHAR2(1);
23124 l_enc_upg_option VARCHAR2(1);
23125
23126 --
23127 BEGIN
23128 --
23129 IF g_log_enabled THEN
23130 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
23131 END IF;
23132 --
23133 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23134
23135 trace
23136 (p_msg => 'BEGIN of AcctLineType_47'
23137 ,p_level => C_LEVEL_PROCEDURE
23138 ,p_module => l_log_module);
23139
23140 END IF;
23141 --
23142 l_component_type := 'AMB_JLT';
23143 l_component_code := 'FV_REL_CANCEL_DR';
23144 l_component_type_code := 'S';
23145 l_component_appl_id := 201;
23146 l_amb_context_code := 'DEFAULT';
23147 l_entity_code := 'RELEASE';
23148 l_event_class_code := 'RELEASE';
23149 l_event_type_code := 'RELEASE_ALL';
23150 l_line_definition_owner_code := 'S';
23151 l_line_definition_code := 'FV_RELEASE_ALL';
23152 --
23153 l_balance_type_code := 'A';
23154 l_segment := NULL;
23155 l_ccid := NULL;
23156 l_adr_transaction_coa_id := NULL;
23157 l_adr_accounting_coa_id := NULL;
23158 l_adr_flexfield_segment_code := NULL;
23159 l_adr_flex_value_set_id := NULL;
23160 l_adr_value_type_code := NULL;
23161 l_adr_value_combination_id := NULL;
23162 l_adr_value_segment_code := NULL;
23163
23164 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
23165 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
23166 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
23167 l_budgetary_control_flag := 'Y';
23168
23169 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23170 l_bflow_applied_to_amt := NULL; -- 5132302
23171 l_entered_amt_idx := NULL; -- 4262811
23172 l_accted_amt_idx := NULL; -- 4262811
23173 l_acc_rev_flag := NULL; -- 4262811
23174 l_accrual_line_num := NULL; -- 4262811
23175 l_tmp_amt := NULL; -- 4262811
23176 --
23177
23178 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23179 l_balance_type_code <> 'B' THEN
23180 IF (NVL(
23181 xla_ae_sources_pkg.GetSystemSourceChar(
23182 p_source_code => 'XLA_EVENT_TYPE_CODE'
23183 , p_source_type_code => 'Y'
23184 , p_source_application_id => 602
23185 ),'
23186 ') = 'RELEASE_CANCELLED' OR
23187 NVL(
23188 xla_ae_sources_pkg.GetSystemSourceChar(
23189 p_source_code => 'XLA_EVENT_TYPE_CODE'
23190 , p_source_type_code => 'Y'
23191 , p_source_application_id => 602
23192 ),'
23193 ') = 'RELEASE_CR_MEMO_CANCELLED') AND
23194 NVL(p_source_13,'
23195 ') = 'M'
23196 THEN
23197
23198 --
23202 -- set the flag so later we will know whether the gain loss line needs to be created
23199 XLA_AE_LINES_PKG.SetNewLine;
23200
23201 p_balance_type_code := l_balance_type_code;
23203
23204 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23205 p_actual_flag :='A';
23206 END IF;
23207
23208 --
23209 -- bulk performance
23210 --
23211 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23212 p_header_num => 0); -- 4262811
23213 --
23214 -- set accounting line options
23215 --
23216 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23217 p_natural_side_code => 'D'
23218 , p_gain_or_loss_flag => 'N'
23219 , p_gl_transfer_mode_code => 'S'
23220 , p_acct_entry_type_code => 'A'
23221 , p_switch_side_flag => 'N'
23222 , p_merge_duplicate_code => 'N'
23223 );
23224 --
23225 l_acc_rev_natural_side_code := 'C'; -- 4262811
23226 --
23227 --
23228 -- set accounting line type info
23229 --
23230 xla_ae_lines_pkg.SetAcctLineType
23231 (p_component_type => l_component_type
23232 ,p_event_type_code => l_event_type_code
23233 ,p_line_definition_owner_code => l_line_definition_owner_code
23234 ,p_line_definition_code => l_line_definition_code
23235 ,p_accounting_line_code => l_component_code
23236 ,p_accounting_line_type_code => l_component_type_code
23237 ,p_accounting_line_appl_id => l_component_appl_id
23238 ,p_amb_context_code => l_amb_context_code
23239 ,p_entity_code => l_entity_code
23240 ,p_event_class_code => l_event_class_code);
23241 --
23242 -- set accounting class
23243 --
23244 xla_ae_lines_pkg.SetAcctClass(
23245 p_accounting_class_code => 'PURCHASE_ORDER'
23246 , p_ae_header_id => l_ae_header_id
23247 );
23248
23249 --
23250 -- set rounding class
23251 --
23252 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23253 'PURCHASE_ORDER';
23254
23255 --
23256 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23257 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23258 --
23259 -- bulk performance
23260 --
23261 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23262
23263 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23264 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23265
23266 -- 4955764
23267 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23268 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23269
23270 -- 4458381 Public Sector Enh
23271
23272 --
23273 -- set accounting attributes for the line type
23274 --
23275 l_entered_amt_idx := 23;
23276 l_accted_amt_idx := 25;
23277 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23278 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23279 l_rec_acct_attrs.array_char_value(1) := p_source_15;
23280 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
23281 l_rec_acct_attrs.array_num_value(2) :=
23282 xla_ae_sources_pkg.GetSystemSourceNum(
23283 p_source_code => 'XLA_EVENT_APPL_ID'
23284 , p_source_type_code => 'Y'
23285 , p_source_application_id => 602
23286 );
23287 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
23288 l_rec_acct_attrs.array_char_value(3) := p_source_17;
23289 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
23290 l_rec_acct_attrs.array_char_value(4) :=
23291 xla_ae_sources_pkg.GetSystemSourceChar(
23292 p_source_code => 'XLA_ENTITY_CODE'
23293 , p_source_type_code => 'Y'
23294 , p_source_application_id => 602
23295 );
23296 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
23297 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
23298 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
23299 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
23300 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
23301 l_rec_acct_attrs.array_num_value(7) := p_source_21;
23302 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23303 l_rec_acct_attrs.array_char_value(8) := p_source_22;
23304 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
23305 l_rec_acct_attrs.array_char_value(9) := p_source_23;
23306 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
23307 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
23308 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23309 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
23310 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
23311 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
23312 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
23313 l_rec_acct_attrs.array_char_value(13) := p_source_17;
23314 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
23315 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
23316 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
23317 l_rec_acct_attrs.array_num_value(15) := p_source_26;
23318 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
23319 l_rec_acct_attrs.array_char_value(16) := p_source_27;
23320 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
23321 l_rec_acct_attrs.array_num_value(17) := p_source_28;
23322 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
23323 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
23324 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
23325 l_rec_acct_attrs.array_num_value(19) := p_source_26;
23326 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
23327 l_rec_acct_attrs.array_char_value(20) := p_source_27;
23328 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
23329 l_rec_acct_attrs.array_num_value(21) := p_source_28;
23330 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
23331 l_rec_acct_attrs.array_char_value(22) := p_source_29;
23332 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
23333 l_rec_acct_attrs.array_num_value(23) := p_source_26;
23334 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
23335 l_rec_acct_attrs.array_char_value(24) := p_source_27;
23336 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
23337 l_rec_acct_attrs.array_num_value(25) := p_source_28;
23338 l_rec_acct_attrs.array_acct_attr_code(26) := 'REVERSED_DISTRIBUTION_ID1';
23339 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_24);
23340 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_TYPE';
23341 l_rec_acct_attrs.array_char_value(27) := p_source_22;
23342 l_rec_acct_attrs.array_acct_attr_code(28) := 'UPG_CR_ENC_TYPE_ID';
23343 l_rec_acct_attrs.array_num_value(28) := p_source_32;
23344 l_rec_acct_attrs.array_acct_attr_code(29) := 'UPG_DR_ENC_TYPE_ID';
23345 l_rec_acct_attrs.array_num_value(29) := p_source_32;
23346
23347 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23348 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23349
23350 ---------------------------------------------------------------------------------------------------------------
23351 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23352 ---------------------------------------------------------------------------------------------------------------
23353 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23354
23355 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23356 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23357
23358 IF xla_accounting_cache_pkg.GetValueChar
23359 (p_source_code => 'LEDGER_CATEGORY_CODE'
23360 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23361 AND l_bflow_method_code = 'PRIOR_ENTRY'
23362 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23363 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23364 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23365 )
23366 THEN
23367 xla_ae_lines_pkg.BflowUpgEntry
23368 (p_business_method_code => l_bflow_method_code
23369 ,p_business_class_code => l_bflow_class_code
23370 ,p_balance_type => l_balance_type_code);
23371 ELSE
23372 NULL;
23373 XLA_AE_LINES_PKG.business_flow_validation(
23374 p_business_method_code => l_bflow_method_code
23375 ,p_business_class_code => l_bflow_class_code
23376 ,p_inherit_description_flag => l_inherit_desc_flag);
23377 END IF;
23378
23379 --
23380 -- call analytical criteria
23381 --
23382 -- Inherited Analytical Criteria for business flow method of Prior Entry.
23383 --
23384 -- call description
23385 --
23386 -- No description or it is inherited.
23387 --
23388 -- call ADRs
23389 -- Bug 4922099
23390 --
23391 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23392 (NVL(l_actual_upg_option, 'N') = 'O') OR
23393 (NVL(l_enc_upg_option, 'N') = 'O')
23394 )
23395 THEN
23396 NULL;
23397 --
23398 --
23399
23400 --
23401 --
23402 END IF;
23403 --
23404 -- Bug 4922099
23405 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23406 (NVL(l_enc_upg_option, 'N') = 'O')
23407 ) AND
23408 (l_bflow_method_code = 'PRIOR_ENTRY')
23409 )
23410 THEN
23411 IF
23412 --
23413 1 = 1
23414 --
23415 THEN
23416 xla_accounting_err_pkg.build_message
23417 (p_appli_s_name => 'XLA'
23418 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23419 ,p_token_1 => 'LINE_NUMBER'
23420 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23421 ,p_token_2 => 'LINE_TYPE_NAME'
23422 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23423 l_component_type
23424 ,l_component_code
23425 ,l_component_type_code
23426 ,l_component_appl_id
23427 ,l_amb_context_code
23428 ,l_entity_code
23429 ,l_event_class_code
23430 )
23431 ,p_token_3 => 'OWNER'
23432 ,p_value_3 => xla_lookups_pkg.get_meaning(
23433 p_lookup_type => 'XLA_OWNER_TYPE'
23434 ,p_lookup_code => l_component_type_code
23435 )
23436 ,p_token_4 => 'PRODUCT_NAME'
23437 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23438 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23439 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23440 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23441 ,p_ae_header_id => NULL
23442 );
23443
23444 IF (C_LEVEL_ERROR>= g_log_level) THEN
23445 trace
23446 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23447 ,p_level => C_LEVEL_ERROR
23448 ,p_module => l_log_module);
23449 END IF;
23450 END IF;
23451 END IF;
23452 --
23453 --
23454 ------------------------------------------------------------------------------------------------
23455 -- 4219869 Business Flow
23456 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23457 -- Prior Entry. Currently, the following code is always generated.
23458 ------------------------------------------------------------------------------------------------
23459 -- No ValidateCurrentLine for business flow method of Prior Entry
23460
23461 ------------------------------------------------------------------------------------
23462 -- 4219869 Business Flow
23463 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23464 ------------------------------------------------------------------------------------
23465 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23466
23467 ----------------------------------------------------------------------------------
23468 -- 4219869 Business Flow
23469 -- Update journal entry status -- Need to generate this within IF <condition>
23470 ----------------------------------------------------------------------------------
23471 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23472 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23473 ,p_balance_type_code => l_balance_type_code
23474 );
23475
23476 -------------------------------------------------------------------------------------------
23477 -- 4262811 - Generate the Accrual Reversal lines
23478 -------------------------------------------------------------------------------------------
23479 BEGIN
23480 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23481 (g_array_event(p_event_id).array_value_num('header_index'));
23482 IF l_acc_rev_flag IS NULL THEN
23483 l_acc_rev_flag := 'N';
23484 END IF;
23485 EXCEPTION
23486 WHEN OTHERS THEN
23487 l_acc_rev_flag := 'N';
23488 END;
23489 --
23490 IF (l_acc_rev_flag = 'Y') THEN
23491
23492 -- 4645092 ------------------------------------------------------------------------------
23493 -- To allow MPA report to determine if it should generate report process
23494 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23495 ------------------------------------------------------------------------------------------
23496
23497 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23498 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23499
23500 --
23501 -- Update the line information that should be overwritten
23502 --
23503 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23504 p_header_num => 1);
23505 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23506
23507 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23508
23509 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23510 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23511 END IF;
23512
23513 --
23514 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23515 --
23516 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23517 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23518 ELSE
23519 ---------------------------------------------------------------------------------------------------
23520 -- 4262811a Switch Sign
23521 ---------------------------------------------------------------------------------------------------
23522 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23523 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23524 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23525 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23526 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23527 -- 5132302
23528 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23529 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23530
23531 END IF;
23532
23533 -- 4955764
23534 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23535 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23536
23537
23538 XLA_AE_LINES_PKG.ValidateCurrentLine;
23539 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23540
23541 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23542 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23543 ,p_balance_type_code => l_balance_type_code);
23544
23545 END IF;
23546
23547 -----------------------------------------------------------------------------------------
23548 -- 4262811 Multiperiod Accounting
23549 -----------------------------------------------------------------------------------------
23550 -- No MPA option is assigned.
23551
23552
23553 END IF;
23554 END IF;
23555 --
23556
23557 --
23558 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23559 trace
23560 (p_msg => 'END of AcctLineType_47'
23561 ,p_level => C_LEVEL_PROCEDURE
23562 ,p_module => l_log_module);
23563 END IF;
23564 --
23565 EXCEPTION
23566 WHEN xla_exceptions_pkg.application_exception THEN
23567 RAISE;
23568 WHEN OTHERS THEN
23569 xla_exceptions_pkg.raise_message
23570 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_47');
23571 END AcctLineType_47;
23572 --
23573
23574 ---------------------------------------
23575 --
23576 -- PRIVATE FUNCTION
23577 -- AcctLineType_48
23578 --
23579 ---------------------------------------
23580 PROCEDURE AcctLineType_48 (
23581 p_application_id IN NUMBER
23582 ,p_event_id IN NUMBER
23586 ,p_balance_type_code OUT VARCHAR2
23583 ,p_calculate_acctd_flag IN VARCHAR2
23584 ,p_calculate_g_l_flag IN VARCHAR2
23585 ,p_actual_flag IN OUT VARCHAR2
23587 ,p_gain_or_loss_ref OUT VARCHAR2
23588
23589 --Journal entry Line Description
23590 , p_source_3 IN VARCHAR2
23591 --Federal Fund Category
23592 , p_source_7 IN VARCHAR2
23593 --Federal Fund Expired Status
23594 , p_source_8 IN VARCHAR2
23595 --Budget Account
23596 , p_source_9 IN NUMBER
23597 --Federal Prior Year Flag
23598 , p_source_10 IN VARCHAR2
23599 --Federal Net Pya Adj Amt
23600 , p_source_11 IN NUMBER
23601 --Main Or Backing Code
23602 , p_source_13 IN VARCHAR2
23603 --Accounting Reversal Flag
23604 , p_source_15 IN VARCHAR2
23605 --Distribution Link Type
23606 , p_source_17 IN VARCHAR2
23607 --PO Distribution Identifier
23608 , p_source_19 IN NUMBER
23609 --Applied To Application Identifier
23610 , p_source_21 IN NUMBER
23611 --Applied To Distribution Link Type
23612 , p_source_22 IN VARCHAR2
23613 --Applied To Entity Code
23614 , p_source_23 IN VARCHAR2
23615 --Applied To Distribution Identifier 1
23616 , p_source_24 IN NUMBER
23617 --Applied To Header Identifier 1
23618 , p_source_25 IN NUMBER
23619 --Entered Amount
23620 , p_source_26 IN NUMBER
23621 --Currency Code
23622 , p_source_27 IN VARCHAR2
23623 --Accounted Amount
23624 , p_source_28 IN NUMBER
23625 --PO Encumbrance Upgrade Option
23626 , p_source_29 IN VARCHAR2
23627 --PO Upgrade Encumbrance Type Identifier
23628 , p_source_32 IN NUMBER
23629 --Currency Conversion Date
23630 , p_source_35 IN DATE
23631 --Currency Conversion Rate
23632 , p_source_36 IN NUMBER
23633 --Currency Conversion Type
23634 , p_source_37 IN VARCHAR2
23635 --PO Release Identifier
23636 , p_source_41 IN NUMBER
23637 )
23638 IS
23639
23640 l_component_type VARCHAR2(80);
23641 l_component_code VARCHAR2(30);
23642 l_component_type_code VARCHAR2(1);
23643 l_component_appl_id INTEGER;
23644 l_amb_context_code VARCHAR2(30);
23645 l_entity_code VARCHAR2(30);
23646 l_event_class_code VARCHAR2(30);
23647 l_ae_header_id NUMBER;
23648 l_event_type_code VARCHAR2(30);
23649 l_line_definition_code VARCHAR2(30);
23650 l_line_definition_owner_code VARCHAR2(1);
23651 --
23652 -- adr variables
23653 l_segment VARCHAR2(30);
23654 l_ccid NUMBER;
23655 l_adr_transaction_coa_id NUMBER;
23656 l_adr_accounting_coa_id NUMBER;
23657 l_adr_flexfield_segment_code VARCHAR2(30);
23658 l_adr_flex_value_set_id NUMBER;
23659 l_adr_value_type_code VARCHAR2(30);
23660 l_adr_value_combination_id NUMBER;
23661 l_adr_value_segment_code VARCHAR2(30);
23662
23663 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23664 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23665 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23666 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23667
23668 -- 4262811 Variables ------------------------------------------------------------------------------------------
23669 l_entered_amt_idx NUMBER;
23670 l_accted_amt_idx NUMBER;
23671 l_acc_rev_flag VARCHAR2(1);
23672 l_accrual_line_num NUMBER;
23673 l_tmp_amt NUMBER;
23674 l_acc_rev_natural_side_code VARCHAR2(1);
23675
23676 l_num_entries NUMBER;
23677 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23678 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23679 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23680 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23681 l_recog_line_1 NUMBER;
23682 l_recog_line_2 NUMBER;
23683
23684 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23685 l_bflow_applied_to_amt NUMBER; -- 5132302
23686 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23687
23688 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23689
23690 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23691 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23692
23693 ---------------------------------------------------------------------------------------------------------------
23694
23695
23696 --
23697 -- bulk performance
23698 --
23699 l_balance_type_code VARCHAR2(1);
23700 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23701 l_log_module VARCHAR2(240);
23702
23703 --
23704 -- Upgrade strategy
23705 --
23706 l_actual_upg_option VARCHAR2(1);
23707 l_enc_upg_option VARCHAR2(1);
23708
23709 --
23710 BEGIN
23711 --
23712 IF g_log_enabled THEN
23713 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
23714 END IF;
23715 --
23716 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23717
23718 trace
23719 (p_msg => 'BEGIN of AcctLineType_48'
23720 ,p_level => C_LEVEL_PROCEDURE
23721 ,p_module => l_log_module);
23722
23723 END IF;
23724 --
23725 l_component_type := 'AMB_JLT';
23726 l_component_code := 'FV_REL_CANCEL_PYA_DR';
23727 l_component_type_code := 'S';
23728 l_component_appl_id := 201;
23729 l_amb_context_code := 'DEFAULT';
23730 l_entity_code := 'RELEASE';
23731 l_event_class_code := 'RELEASE';
23732 l_event_type_code := 'RELEASE_ALL';
23733 l_line_definition_owner_code := 'S';
23734 l_line_definition_code := 'FV_RELEASE_ALL';
23735 --
23736 l_balance_type_code := 'A';
23737 l_segment := NULL;
23738 l_ccid := NULL;
23739 l_adr_transaction_coa_id := NULL;
23740 l_adr_accounting_coa_id := NULL;
23741 l_adr_flexfield_segment_code := NULL;
23742 l_adr_flex_value_set_id := NULL;
23743 l_adr_value_type_code := NULL;
23744 l_adr_value_combination_id := NULL;
23745 l_adr_value_segment_code := NULL;
23746
23747 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
23748 l_bflow_class_code := ''; -- 4219869 Business Flow
23749 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23750 l_budgetary_control_flag := 'Y';
23751
23752 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23753 l_bflow_applied_to_amt := NULL; -- 5132302
23754 l_entered_amt_idx := NULL; -- 4262811
23755 l_accted_amt_idx := NULL; -- 4262811
23756 l_acc_rev_flag := NULL; -- 4262811
23757 l_accrual_line_num := NULL; -- 4262811
23758 l_tmp_amt := NULL; -- 4262811
23759 --
23760
23761 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23762 l_balance_type_code <> 'B' THEN
23763 IF NVL(
23764 xla_ae_sources_pkg.GetSystemSourceChar(
23765 p_source_code => 'XLA_EVENT_TYPE_CODE'
23766 , p_source_type_code => 'Y'
23767 , p_source_application_id => 602
23768 ),'
23769 ') = 'RELEASE_CANCELLED' AND
23770 NVL(p_source_13,'
23771 ') = 'M' AND
23772 NVL(p_source_10,'
23773 ') = 'Y'
23774 THEN
23775
23776 --
23777 XLA_AE_LINES_PKG.SetNewLine;
23778
23779 p_balance_type_code := l_balance_type_code;
23780 -- set the flag so later we will know whether the gain loss line needs to be created
23781
23782 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23783 p_actual_flag :='A';
23784 END IF;
23785
23786 --
23787 -- bulk performance
23788 --
23789 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23790 p_header_num => 0); -- 4262811
23791 --
23792 -- set accounting line options
23793 --
23794 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23795 p_natural_side_code => 'D'
23796 , p_gain_or_loss_flag => 'N'
23797 , p_gl_transfer_mode_code => 'S'
23798 , p_acct_entry_type_code => 'A'
23799 , p_switch_side_flag => 'N'
23800 , p_merge_duplicate_code => 'N'
23801 );
23802 --
23803 l_acc_rev_natural_side_code := 'C'; -- 4262811
23804 --
23805 --
23806 -- set accounting line type info
23807 --
23808 xla_ae_lines_pkg.SetAcctLineType
23809 (p_component_type => l_component_type
23810 ,p_event_type_code => l_event_type_code
23811 ,p_line_definition_owner_code => l_line_definition_owner_code
23812 ,p_line_definition_code => l_line_definition_code
23813 ,p_accounting_line_code => l_component_code
23814 ,p_accounting_line_type_code => l_component_type_code
23815 ,p_accounting_line_appl_id => l_component_appl_id
23816 ,p_amb_context_code => l_amb_context_code
23817 ,p_entity_code => l_entity_code
23818 ,p_event_class_code => l_event_class_code);
23819 --
23820 -- set accounting class
23821 --
23822 xla_ae_lines_pkg.SetAcctClass(
23823 p_accounting_class_code => 'PURCHASE_ORDER'
23824 , p_ae_header_id => l_ae_header_id
23825 );
23826
23827 --
23828 -- set rounding class
23829 --
23830 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23831 'PURCHASE_ORDER';
23832
23833 --
23834 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23835 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23836 --
23837 -- bulk performance
23838 --
23839 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23840
23841 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23842 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23843
23844 -- 4955764
23845 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23846 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23847
23848 -- 4458381 Public Sector Enh
23849
23850 --
23851 -- set accounting attributes for the line type
23852 --
23853 l_entered_amt_idx := 23;
23854 l_accted_amt_idx := 28;
23855 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23856 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23857 l_rec_acct_attrs.array_char_value(1) := p_source_15;
23858 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
23859 l_rec_acct_attrs.array_num_value(2) :=
23860 xla_ae_sources_pkg.GetSystemSourceNum(
23861 p_source_code => 'XLA_EVENT_APPL_ID'
23862 , p_source_type_code => 'Y'
23863 , p_source_application_id => 602
23864 );
23865 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
23866 l_rec_acct_attrs.array_char_value(3) := p_source_17;
23867 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
23868 l_rec_acct_attrs.array_char_value(4) :=
23869 xla_ae_sources_pkg.GetSystemSourceChar(
23870 p_source_code => 'XLA_ENTITY_CODE'
23871 , p_source_type_code => 'Y'
23872 , p_source_application_id => 602
23873 );
23874 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
23875 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
23876 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
23877 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
23878 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
23879 l_rec_acct_attrs.array_num_value(7) := p_source_21;
23880 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23881 l_rec_acct_attrs.array_char_value(8) := p_source_22;
23882 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
23883 l_rec_acct_attrs.array_char_value(9) := p_source_23;
23884 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
23885 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
23886 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23887 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
23888 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
23889 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
23890 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
23891 l_rec_acct_attrs.array_char_value(13) := p_source_17;
23892 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
23893 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
23894 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
23895 l_rec_acct_attrs.array_num_value(15) := p_source_26;
23896 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
23897 l_rec_acct_attrs.array_char_value(16) := p_source_27;
23898 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
23899 l_rec_acct_attrs.array_num_value(17) := p_source_28;
23900 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
23901 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
23902 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
23903 l_rec_acct_attrs.array_num_value(19) := p_source_26;
23904 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
23905 l_rec_acct_attrs.array_char_value(20) := p_source_27;
23906 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
23907 l_rec_acct_attrs.array_num_value(21) := p_source_28;
23908 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
23909 l_rec_acct_attrs.array_char_value(22) := p_source_29;
23910 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
23911 l_rec_acct_attrs.array_num_value(23) := p_source_26;
23912 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
23913 l_rec_acct_attrs.array_char_value(24) := p_source_27;
23914 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
23915 l_rec_acct_attrs.array_date_value(25) := p_source_35;
23916 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
23920 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
23917 l_rec_acct_attrs.array_num_value(26) := p_source_36;
23918 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
23919 l_rec_acct_attrs.array_char_value(27) := p_source_37;
23921 l_rec_acct_attrs.array_num_value(28) := p_source_28;
23922 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
23923 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
23924 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
23925 l_rec_acct_attrs.array_char_value(30) := p_source_22;
23926 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
23927 l_rec_acct_attrs.array_num_value(31) := p_source_32;
23928 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
23929 l_rec_acct_attrs.array_num_value(32) := p_source_32;
23930
23931 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23932 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23933
23934 ---------------------------------------------------------------------------------------------------------------
23935 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23936 ---------------------------------------------------------------------------------------------------------------
23937 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23938
23939 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23940 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23941
23942 IF xla_accounting_cache_pkg.GetValueChar
23943 (p_source_code => 'LEDGER_CATEGORY_CODE'
23944 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23945 AND l_bflow_method_code = 'PRIOR_ENTRY'
23946 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23947 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23948 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23949 )
23950 THEN
23951 xla_ae_lines_pkg.BflowUpgEntry
23952 (p_business_method_code => l_bflow_method_code
23953 ,p_business_class_code => l_bflow_class_code
23954 ,p_balance_type => l_balance_type_code);
23955 ELSE
23956 NULL;
23957 -- No business flow processing for business flow method of NONE.
23958 END IF;
23959
23960 --
23961 -- call analytical criteria
23962 --
23963
23964 --
23965 -- call description
23966 --
23967
23968 xla_ae_lines_pkg.SetLineDescription(
23969 p_ae_header_id => l_ae_header_id
23970 ,p_description => Description_2 (
23971 p_application_id => p_application_id
23972 , p_ae_header_id => l_ae_header_id
23973 , p_source_3 => p_source_3
23974 )
23975 );
23976
23977
23978 --
23979 -- call ADRs
23980 -- Bug 4922099
23981 --
23982 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23983 (NVL(l_actual_upg_option, 'N') = 'O') OR
23984 (NVL(l_enc_upg_option, 'N') = 'O')
23985 )
23986 THEN
23987 NULL;
23988 --
23989 --
23990
23991 l_ccid := AcctDerRule_9(
23992 p_application_id => p_application_id
23993 , p_ae_header_id => l_ae_header_id
23994 , p_source_9 => p_source_9
23995 , x_transaction_coa_id => l_adr_transaction_coa_id
23996 , x_accounting_coa_id => l_adr_accounting_coa_id
23997 , x_value_type_code => l_adr_value_type_code
23998 , p_side => 'NA'
23999 );
24000
24001 xla_ae_lines_pkg.set_ccid(
24002 p_code_combination_id => l_ccid
24003 , p_value_type_code => l_adr_value_type_code
24004 , p_transaction_coa_id => l_adr_transaction_coa_id
24005 , p_accounting_coa_id => l_adr_accounting_coa_id
24006 , p_adr_code => 'FV_ACCOUNT_RULE'
24007 , p_adr_type_code => 'S'
24008 , p_component_type => l_component_type
24009 , p_component_code => l_component_code
24010 , p_component_type_code => l_component_type_code
24011 , p_component_appl_id => l_component_appl_id
24012 , p_amb_context_code => l_amb_context_code
24013 , p_side => 'NA'
24014 );
24015
24016
24017 l_segment := AcctDerRule_12(
24018 p_application_id => p_application_id
24019 , p_ae_header_id => l_ae_header_id
24020 , p_source_7 => p_source_7
24021 , p_source_8 => p_source_8
24022 , p_source_10 => p_source_10
24023 , p_source_11 => p_source_11
24024 , x_transaction_coa_id => l_adr_transaction_coa_id
24025 , x_accounting_coa_id => l_adr_accounting_coa_id
24026 , x_flexfield_segment_code => l_adr_flexfield_segment_code
24027 , x_flex_value_set_id => l_adr_flex_value_set_id
24028 , x_value_type_code => l_adr_value_type_code
24029 , x_value_combination_id => l_adr_value_combination_id
24030 , x_value_segment_code => l_adr_value_segment_code
24031 , p_side => 'NA'
24032 , p_override_seg_flag => 'Y'
24033 );
24034
24035 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
24036
24037 xla_ae_lines_pkg.set_segment(
24038 p_to_segment_code => 'GL_ACCOUNT'
24039 , p_segment_value => l_segment
24040 , p_from_segment_code => l_adr_value_segment_code
24041 , p_from_combination_id => l_adr_value_combination_id
24042 , p_value_type_code => l_adr_value_type_code
24043 , p_transaction_coa_id => l_adr_transaction_coa_id
24044 , p_accounting_coa_id => l_adr_accounting_coa_id
24045 , p_flexfield_segment_code => l_adr_flexfield_segment_code
24046 , p_flex_value_set_id => l_adr_flex_value_set_id
24047 , p_adr_code => 'FV_PYA_46X002_487101'
24048 , p_adr_type_code => 'S'
24049 , p_component_type => l_component_type
24050 , p_component_code => l_component_code
24051 , p_component_type_code => l_component_type_code
24052 , p_component_appl_id => l_component_appl_id
24053 , p_amb_context_code => l_amb_context_code
24054 , p_entity_code => 'RELEASE'
24055 , p_event_class_code => 'RELEASE'
24056 , p_side => 'NA'
24057 );
24058
24059 END IF;
24060
24061 --
24062 --
24063 END IF;
24064 --
24065 -- Bug 4922099
24066 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24067 (NVL(l_enc_upg_option, 'N') = 'O')
24068 ) AND
24069 (l_bflow_method_code = 'PRIOR_ENTRY')
24070 )
24071 THEN
24072 IF
24073 --
24074 1 = 2
24075 --
24076 THEN
24077 xla_accounting_err_pkg.build_message
24078 (p_appli_s_name => 'XLA'
24079 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24080 ,p_token_1 => 'LINE_NUMBER'
24081 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24082 ,p_token_2 => 'LINE_TYPE_NAME'
24083 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24084 l_component_type
24085 ,l_component_code
24086 ,l_component_type_code
24087 ,l_component_appl_id
24088 ,l_amb_context_code
24089 ,l_entity_code
24090 ,l_event_class_code
24091 )
24092 ,p_token_3 => 'OWNER'
24093 ,p_value_3 => xla_lookups_pkg.get_meaning(
24094 p_lookup_type => 'XLA_OWNER_TYPE'
24095 ,p_lookup_code => l_component_type_code
24096 )
24097 ,p_token_4 => 'PRODUCT_NAME'
24098 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24099 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24100 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24101 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24102 ,p_ae_header_id => NULL
24103 );
24104
24105 IF (C_LEVEL_ERROR>= g_log_level) THEN
24106 trace
24107 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24108 ,p_level => C_LEVEL_ERROR
24109 ,p_module => l_log_module);
24110 END IF;
24111 END IF;
24112 END IF;
24113 --
24114 --
24115 ------------------------------------------------------------------------------------------------
24116 -- 4219869 Business Flow
24117 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24118 -- Prior Entry. Currently, the following code is always generated.
24119 ------------------------------------------------------------------------------------------------
24120 XLA_AE_LINES_PKG.ValidateCurrentLine;
24121
24122 ------------------------------------------------------------------------------------
24123 -- 4219869 Business Flow
24124 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24125 ------------------------------------------------------------------------------------
24126 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24127
24128 ----------------------------------------------------------------------------------
24129 -- 4219869 Business Flow
24130 -- Update journal entry status -- Need to generate this within IF <condition>
24131 ----------------------------------------------------------------------------------
24132 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24133 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24134 ,p_balance_type_code => l_balance_type_code
24135 );
24136
24137 -------------------------------------------------------------------------------------------
24138 -- 4262811 - Generate the Accrual Reversal lines
24139 -------------------------------------------------------------------------------------------
24140 BEGIN
24141 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24142 (g_array_event(p_event_id).array_value_num('header_index'));
24143 IF l_acc_rev_flag IS NULL THEN
24144 l_acc_rev_flag := 'N';
24145 END IF;
24146 EXCEPTION
24147 WHEN OTHERS THEN
24148 l_acc_rev_flag := 'N';
24149 END;
24150 --
24151 IF (l_acc_rev_flag = 'Y') THEN
24152
24153 -- 4645092 ------------------------------------------------------------------------------
24154 -- To allow MPA report to determine if it should generate report process
24155 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24156 ------------------------------------------------------------------------------------------
24157
24158 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24159 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24160
24161 --
24162 -- Update the line information that should be overwritten
24163 --
24164 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24165 p_header_num => 1);
24166 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24167
24168 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24169
24170 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24171 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24172 END IF;
24173
24174 --
24175 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24176 --
24177 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24178 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24179 ELSE
24180 ---------------------------------------------------------------------------------------------------
24181 -- 4262811a Switch Sign
24182 ---------------------------------------------------------------------------------------------------
24183 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24184 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24185 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24186 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24187 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24188 -- 5132302
24189 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24190 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24191
24192 END IF;
24193
24194 -- 4955764
24195 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24196 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24197
24198
24199 XLA_AE_LINES_PKG.ValidateCurrentLine;
24200 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24201
24202 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24203 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24204 ,p_balance_type_code => l_balance_type_code);
24205
24206 END IF;
24207
24208 -----------------------------------------------------------------------------------------
24209 -- 4262811 Multiperiod Accounting
24210 -----------------------------------------------------------------------------------------
24211 -- No MPA option is assigned.
24212
24213
24214 END IF;
24215 END IF;
24216 --
24217
24218 --
24219 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24220 trace
24221 (p_msg => 'END of AcctLineType_48'
24222 ,p_level => C_LEVEL_PROCEDURE
24223 ,p_module => l_log_module);
24224 END IF;
24225 --
24226 EXCEPTION
24227 WHEN xla_exceptions_pkg.application_exception THEN
24228 RAISE;
24229 WHEN OTHERS THEN
24230 xla_exceptions_pkg.raise_message
24231 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_48');
24232 END AcctLineType_48;
24233 --
24234
24235 ---------------------------------------
24236 --
24237 -- PRIVATE FUNCTION
24238 -- AcctLineType_49
24239 --
24240 ---------------------------------------
24241 PROCEDURE AcctLineType_49 (
24242 p_application_id IN NUMBER
24243 ,p_event_id IN NUMBER
24244 ,p_calculate_acctd_flag IN VARCHAR2
24245 ,p_calculate_g_l_flag IN VARCHAR2
24246 ,p_actual_flag IN OUT VARCHAR2
24247 ,p_balance_type_code OUT VARCHAR2
24248 ,p_gain_or_loss_ref OUT VARCHAR2
24249
24250 --Budget Account
24251 , p_source_9 IN NUMBER
24252 --Main Or Backing Code
24253 , p_source_13 IN VARCHAR2
24254 --Accounting Reversal Flag
24255 , p_source_15 IN VARCHAR2
24256 --Distribution Link Type
24257 , p_source_17 IN VARCHAR2
24258 --PO Distribution Identifier
24259 , p_source_19 IN NUMBER
24260 --Applied To Application Identifier
24261 , p_source_21 IN NUMBER
24262 --Applied To Distribution Link Type
24263 , p_source_22 IN VARCHAR2
24264 --Applied To Entity Code
24265 , p_source_23 IN VARCHAR2
24266 --Applied To Distribution Identifier 1
24267 , p_source_24 IN NUMBER
24268 --Applied To Header Identifier 1
24269 , p_source_25 IN NUMBER
24270 --Entered Amount
24271 , p_source_26 IN NUMBER
24272 --Currency Code
24273 , p_source_27 IN VARCHAR2
24274 --Accounted Amount
24275 , p_source_28 IN NUMBER
24276 --PO Encumbrance Upgrade Option
24277 , p_source_29 IN VARCHAR2
24278 --JFMIP Reference
24279 , p_source_31 IN VARCHAR2
24280 --PO Upgrade Encumbrance Type Identifier
24281 , p_source_32 IN NUMBER
24282 --Allocated to Main Document Distribution Type
24283 , p_source_33 IN VARCHAR2
24284 --Allocated to Main Document Distribution Identifier
24285 , p_source_34 IN NUMBER
24286 --PO Release Identifier
24287 , p_source_41 IN NUMBER
24288 )
24289 IS
24290
24291 l_component_type VARCHAR2(80);
24292 l_component_code VARCHAR2(30);
24293 l_component_type_code VARCHAR2(1);
24294 l_component_appl_id INTEGER;
24295 l_amb_context_code VARCHAR2(30);
24296 l_entity_code VARCHAR2(30);
24297 l_event_class_code VARCHAR2(30);
24298 l_ae_header_id NUMBER;
24299 l_event_type_code VARCHAR2(30);
24300 l_line_definition_code VARCHAR2(30);
24301 l_line_definition_owner_code VARCHAR2(1);
24302 --
24303 -- adr variables
24304 l_segment VARCHAR2(30);
24305 l_ccid NUMBER;
24306 l_adr_transaction_coa_id NUMBER;
24307 l_adr_accounting_coa_id NUMBER;
24308 l_adr_flexfield_segment_code VARCHAR2(30);
24309 l_adr_flex_value_set_id NUMBER;
24310 l_adr_value_type_code VARCHAR2(30);
24311 l_adr_value_combination_id NUMBER;
24312 l_adr_value_segment_code VARCHAR2(30);
24313
24314 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24315 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24319 -- 4262811 Variables ------------------------------------------------------------------------------------------
24316 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24317 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24318
24320 l_entered_amt_idx NUMBER;
24321 l_accted_amt_idx NUMBER;
24322 l_acc_rev_flag VARCHAR2(1);
24323 l_accrual_line_num NUMBER;
24324 l_tmp_amt NUMBER;
24325 l_acc_rev_natural_side_code VARCHAR2(1);
24326
24327 l_num_entries NUMBER;
24328 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24329 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24330 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24331 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24332 l_recog_line_1 NUMBER;
24333 l_recog_line_2 NUMBER;
24334
24335 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24336 l_bflow_applied_to_amt NUMBER; -- 5132302
24337 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24338
24339 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24340
24341 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24342 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24343
24344 ---------------------------------------------------------------------------------------------------------------
24345
24346
24347 --
24348 -- bulk performance
24349 --
24350 l_balance_type_code VARCHAR2(1);
24351 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24352 l_log_module VARCHAR2(240);
24353
24354 --
24355 -- Upgrade strategy
24356 --
24357 l_actual_upg_option VARCHAR2(1);
24358 l_enc_upg_option VARCHAR2(1);
24359
24360 --
24361 BEGIN
24362 --
24363 IF g_log_enabled THEN
24364 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
24365 END IF;
24366 --
24367 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24368
24369 trace
24370 (p_msg => 'BEGIN of AcctLineType_49'
24371 ,p_level => C_LEVEL_PROCEDURE
24372 ,p_module => l_log_module);
24373
24374 END IF;
24375 --
24376 l_component_type := 'AMB_JLT';
24377 l_component_code := 'FV_REL_CANCEL_REINST_PO_PA_CR';
24378 l_component_type_code := 'S';
24379 l_component_appl_id := 201;
24380 l_amb_context_code := 'DEFAULT';
24381 l_entity_code := 'RELEASE';
24382 l_event_class_code := 'RELEASE';
24383 l_event_type_code := 'RELEASE_ALL';
24384 l_line_definition_owner_code := 'S';
24385 l_line_definition_code := 'FV_RELEASE_ALL';
24386 --
24387 l_balance_type_code := 'A';
24388 l_segment := NULL;
24389 l_ccid := NULL;
24390 l_adr_transaction_coa_id := NULL;
24391 l_adr_accounting_coa_id := NULL;
24392 l_adr_flexfield_segment_code := NULL;
24393 l_adr_flex_value_set_id := NULL;
24394 l_adr_value_type_code := NULL;
24395 l_adr_value_combination_id := NULL;
24396 l_adr_value_segment_code := NULL;
24397
24398 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
24399 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
24400 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
24401 l_budgetary_control_flag := 'Y';
24402
24403 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24404 l_bflow_applied_to_amt := NULL; -- 5132302
24405 l_entered_amt_idx := NULL; -- 4262811
24406 l_accted_amt_idx := NULL; -- 4262811
24407 l_acc_rev_flag := NULL; -- 4262811
24408 l_accrual_line_num := NULL; -- 4262811
24409 l_tmp_amt := NULL; -- 4262811
24410 --
24411
24412 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24413 l_balance_type_code <> 'B' THEN
24414 IF (NVL(
24415 xla_ae_sources_pkg.GetSystemSourceChar(
24416 p_source_code => 'XLA_EVENT_TYPE_CODE'
24417 , p_source_type_code => 'Y'
24418 , p_source_application_id => 602
24419 ),'
24420 ') = 'RELEASE_CANCELLED' OR
24421 NVL(
24422 xla_ae_sources_pkg.GetSystemSourceChar(
24423 p_source_code => 'XLA_EVENT_TYPE_CODE'
24424 , p_source_type_code => 'Y'
24425 , p_source_application_id => 602
24426 ),'
24427 ') = 'RELEASE_CR_MEMO_CANCELLED') AND
24428 (NVL(p_source_13,'
24429 ') = 'B_PO' OR
24430 NVL(p_source_13,'
24431 ') = 'B_PA')
24432 THEN
24433
24434 --
24435 XLA_AE_LINES_PKG.SetNewLine;
24436
24437 p_balance_type_code := l_balance_type_code;
24438 -- set the flag so later we will know whether the gain loss line needs to be created
24439
24440 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24441 p_actual_flag :='A';
24442 END IF;
24443
24444 --
24445 -- bulk performance
24446 --
24447 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24448 p_header_num => 0); -- 4262811
24449 --
24450 -- set accounting line options
24451 --
24452 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24453 p_natural_side_code => 'C'
24457 , p_switch_side_flag => 'N'
24454 , p_gain_or_loss_flag => 'N'
24455 , p_gl_transfer_mode_code => 'S'
24456 , p_acct_entry_type_code => 'A'
24458 , p_merge_duplicate_code => 'N'
24459 );
24460 --
24461 l_acc_rev_natural_side_code := 'D'; -- 4262811
24462 --
24463 --
24464 -- set accounting line type info
24465 --
24466 xla_ae_lines_pkg.SetAcctLineType
24467 (p_component_type => l_component_type
24468 ,p_event_type_code => l_event_type_code
24469 ,p_line_definition_owner_code => l_line_definition_owner_code
24470 ,p_line_definition_code => l_line_definition_code
24471 ,p_accounting_line_code => l_component_code
24472 ,p_accounting_line_type_code => l_component_type_code
24473 ,p_accounting_line_appl_id => l_component_appl_id
24474 ,p_amb_context_code => l_amb_context_code
24475 ,p_entity_code => l_entity_code
24476 ,p_event_class_code => l_event_class_code);
24477 --
24478 -- set accounting class
24479 --
24480 xla_ae_lines_pkg.SetAcctClass(
24481 p_accounting_class_code => 'PURCHASE_ORDER'
24482 , p_ae_header_id => l_ae_header_id
24483 );
24484
24485 --
24486 -- set rounding class
24487 --
24488 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24489 'PURCHASE_ORDER';
24490
24491 --
24492 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24493 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24494 --
24495 -- bulk performance
24496 --
24497 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24498
24499 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24500 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24501
24502 -- 4955764
24503 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24504 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24505
24506 -- 4458381 Public Sector Enh
24507
24508 --
24509 -- set accounting attributes for the line type
24510 --
24511 l_entered_amt_idx := 23;
24512 l_accted_amt_idx := 25;
24513 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24514 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24515 l_rec_acct_attrs.array_char_value(1) := p_source_15;
24516 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
24517 l_rec_acct_attrs.array_num_value(2) :=
24518 xla_ae_sources_pkg.GetSystemSourceNum(
24519 p_source_code => 'XLA_EVENT_APPL_ID'
24520 , p_source_type_code => 'Y'
24521 , p_source_application_id => 602
24522 );
24523 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
24524 l_rec_acct_attrs.array_char_value(3) := p_source_33;
24525 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
24526 l_rec_acct_attrs.array_char_value(4) :=
24527 xla_ae_sources_pkg.GetSystemSourceChar(
24528 p_source_code => 'XLA_ENTITY_CODE'
24529 , p_source_type_code => 'Y'
24530 , p_source_application_id => 602
24531 );
24532 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
24533 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
24534 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
24535 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
24536 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
24537 l_rec_acct_attrs.array_num_value(7) := p_source_21;
24538 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24539 l_rec_acct_attrs.array_char_value(8) := p_source_22;
24540 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
24541 l_rec_acct_attrs.array_char_value(9) := p_source_23;
24542 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
24543 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
24544 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24545 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
24546 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
24547 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
24548 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
24549 l_rec_acct_attrs.array_char_value(13) := p_source_17;
24550 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
24551 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
24552 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
24553 l_rec_acct_attrs.array_num_value(15) := p_source_26;
24554 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
24555 l_rec_acct_attrs.array_char_value(16) := p_source_27;
24556 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
24557 l_rec_acct_attrs.array_num_value(17) := p_source_28;
24558 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
24559 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
24560 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
24561 l_rec_acct_attrs.array_num_value(19) := p_source_26;
24562 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
24563 l_rec_acct_attrs.array_char_value(20) := p_source_27;
24564 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
24565 l_rec_acct_attrs.array_num_value(21) := p_source_28;
24566 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
24567 l_rec_acct_attrs.array_char_value(22) := p_source_29;
24568 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
24569 l_rec_acct_attrs.array_num_value(23) := p_source_26;
24570 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
24571 l_rec_acct_attrs.array_char_value(24) := p_source_27;
24572 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
24573 l_rec_acct_attrs.array_num_value(25) := p_source_28;
24574 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
24575 l_rec_acct_attrs.array_char_value(26) := p_source_31;
24576 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
24577 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
24578 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
24579 l_rec_acct_attrs.array_char_value(28) := p_source_22;
24580 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
24581 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
24582 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
24583 l_rec_acct_attrs.array_num_value(30) := p_source_32;
24584 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
24585 l_rec_acct_attrs.array_num_value(31) := p_source_32;
24586
24587 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24588 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24589
24590 ---------------------------------------------------------------------------------------------------------------
24591 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24592 ---------------------------------------------------------------------------------------------------------------
24593 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24594
24595 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24596 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24597
24598 IF xla_accounting_cache_pkg.GetValueChar
24599 (p_source_code => 'LEDGER_CATEGORY_CODE'
24600 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24601 AND l_bflow_method_code = 'PRIOR_ENTRY'
24602 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24603 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24604 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24605 )
24606 THEN
24607 xla_ae_lines_pkg.BflowUpgEntry
24608 (p_business_method_code => l_bflow_method_code
24609 ,p_business_class_code => l_bflow_class_code
24610 ,p_balance_type => l_balance_type_code);
24611 ELSE
24612 NULL;
24613 XLA_AE_LINES_PKG.business_flow_validation(
24614 p_business_method_code => l_bflow_method_code
24615 ,p_business_class_code => l_bflow_class_code
24616 ,p_inherit_description_flag => l_inherit_desc_flag);
24617 END IF;
24618
24619 --
24620 -- call analytical criteria
24621 --
24622 -- Inherited Analytical Criteria for business flow method of Prior Entry.
24623 --
24624 -- call description
24625 --
24626 -- No description or it is inherited.
24627 --
24628 -- call ADRs
24629 -- Bug 4922099
24630 --
24631 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24632 (NVL(l_actual_upg_option, 'N') = 'O') OR
24633 (NVL(l_enc_upg_option, 'N') = 'O')
24634 )
24635 THEN
24636 NULL;
24637 --
24638 --
24639
24640 --
24641 --
24642 END IF;
24643 --
24644 -- Bug 4922099
24645 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24646 (NVL(l_enc_upg_option, 'N') = 'O')
24647 ) AND
24648 (l_bflow_method_code = 'PRIOR_ENTRY')
24649 )
24650 THEN
24651 IF
24652 --
24653 1 = 1
24654 --
24655 THEN
24656 xla_accounting_err_pkg.build_message
24657 (p_appli_s_name => 'XLA'
24658 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24662 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24659 ,p_token_1 => 'LINE_NUMBER'
24660 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24661 ,p_token_2 => 'LINE_TYPE_NAME'
24663 l_component_type
24664 ,l_component_code
24665 ,l_component_type_code
24666 ,l_component_appl_id
24667 ,l_amb_context_code
24668 ,l_entity_code
24669 ,l_event_class_code
24670 )
24671 ,p_token_3 => 'OWNER'
24672 ,p_value_3 => xla_lookups_pkg.get_meaning(
24673 p_lookup_type => 'XLA_OWNER_TYPE'
24674 ,p_lookup_code => l_component_type_code
24675 )
24676 ,p_token_4 => 'PRODUCT_NAME'
24677 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24678 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24679 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24680 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24681 ,p_ae_header_id => NULL
24682 );
24683
24684 IF (C_LEVEL_ERROR>= g_log_level) THEN
24685 trace
24686 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24687 ,p_level => C_LEVEL_ERROR
24688 ,p_module => l_log_module);
24689 END IF;
24690 END IF;
24691 END IF;
24692 --
24693 --
24694 ------------------------------------------------------------------------------------------------
24695 -- 4219869 Business Flow
24696 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24697 -- Prior Entry. Currently, the following code is always generated.
24698 ------------------------------------------------------------------------------------------------
24699 -- No ValidateCurrentLine for business flow method of Prior Entry
24700
24701 ------------------------------------------------------------------------------------
24702 -- 4219869 Business Flow
24703 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24704 ------------------------------------------------------------------------------------
24705 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24706
24707 ----------------------------------------------------------------------------------
24708 -- 4219869 Business Flow
24709 -- Update journal entry status -- Need to generate this within IF <condition>
24710 ----------------------------------------------------------------------------------
24711 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24712 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24713 ,p_balance_type_code => l_balance_type_code
24714 );
24715
24716 -------------------------------------------------------------------------------------------
24717 -- 4262811 - Generate the Accrual Reversal lines
24718 -------------------------------------------------------------------------------------------
24719 BEGIN
24720 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24721 (g_array_event(p_event_id).array_value_num('header_index'));
24722 IF l_acc_rev_flag IS NULL THEN
24723 l_acc_rev_flag := 'N';
24724 END IF;
24725 EXCEPTION
24726 WHEN OTHERS THEN
24727 l_acc_rev_flag := 'N';
24728 END;
24729 --
24730 IF (l_acc_rev_flag = 'Y') THEN
24731
24732 -- 4645092 ------------------------------------------------------------------------------
24733 -- To allow MPA report to determine if it should generate report process
24734 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24735 ------------------------------------------------------------------------------------------
24736
24737 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24738 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24739
24740 --
24741 -- Update the line information that should be overwritten
24742 --
24743 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24744 p_header_num => 1);
24745 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24746
24747 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24748
24749 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24750 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24751 END IF;
24752
24753 --
24754 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24758 ELSE
24755 --
24756 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24757 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24759 ---------------------------------------------------------------------------------------------------
24760 -- 4262811a Switch Sign
24761 ---------------------------------------------------------------------------------------------------
24762 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24763 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24764 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24765 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24766 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24767 -- 5132302
24768 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24769 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24770
24771 END IF;
24772
24773 -- 4955764
24774 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24775 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24776
24777
24778 XLA_AE_LINES_PKG.ValidateCurrentLine;
24779 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24780
24781 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24782 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24783 ,p_balance_type_code => l_balance_type_code);
24784
24785 END IF;
24786
24787 -----------------------------------------------------------------------------------------
24788 -- 4262811 Multiperiod Accounting
24789 -----------------------------------------------------------------------------------------
24790 -- No MPA option is assigned.
24791
24792
24793 END IF;
24794 END IF;
24795 --
24796
24797 --
24798 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24799 trace
24800 (p_msg => 'END of AcctLineType_49'
24801 ,p_level => C_LEVEL_PROCEDURE
24802 ,p_module => l_log_module);
24803 END IF;
24804 --
24805 EXCEPTION
24806 WHEN xla_exceptions_pkg.application_exception THEN
24807 RAISE;
24808 WHEN OTHERS THEN
24809 xla_exceptions_pkg.raise_message
24810 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_49');
24811 END AcctLineType_49;
24812 --
24813
24814 ---------------------------------------
24815 --
24816 -- PRIVATE FUNCTION
24817 -- AcctLineType_50
24818 --
24819 ---------------------------------------
24820 PROCEDURE AcctLineType_50 (
24821 p_application_id IN NUMBER
24822 ,p_event_id IN NUMBER
24823 ,p_calculate_acctd_flag IN VARCHAR2
24824 ,p_calculate_g_l_flag IN VARCHAR2
24825 ,p_actual_flag IN OUT VARCHAR2
24826 ,p_balance_type_code OUT VARCHAR2
24827 ,p_gain_or_loss_ref OUT VARCHAR2
24828
24829 --Budget Account
24830 , p_source_9 IN NUMBER
24831 --Main Or Backing Code
24832 , p_source_13 IN VARCHAR2
24833 --Accounting Reversal Flag
24834 , p_source_15 IN VARCHAR2
24835 --Distribution Link Type
24836 , p_source_17 IN VARCHAR2
24837 --PO Distribution Identifier
24838 , p_source_19 IN NUMBER
24839 --Applied To Application Identifier
24840 , p_source_21 IN NUMBER
24841 --Applied To Distribution Link Type
24842 , p_source_22 IN VARCHAR2
24843 --Applied To Entity Code
24844 , p_source_23 IN VARCHAR2
24845 --Applied To Distribution Identifier 1
24846 , p_source_24 IN NUMBER
24847 --Applied To Header Identifier 1
24848 , p_source_25 IN NUMBER
24849 --Entered Amount
24850 , p_source_26 IN NUMBER
24851 --Currency Code
24852 , p_source_27 IN VARCHAR2
24853 --Accounted Amount
24854 , p_source_28 IN NUMBER
24855 --PO Encumbrance Upgrade Option
24856 , p_source_29 IN VARCHAR2
24857 --JFMIP Reference
24858 , p_source_31 IN VARCHAR2
24859 --PO Upgrade Encumbrance Type Identifier
24860 , p_source_32 IN NUMBER
24861 --Allocated to Main Document Distribution Type
24862 , p_source_33 IN VARCHAR2
24863 --Allocated to Main Document Distribution Identifier
24864 , p_source_34 IN NUMBER
24865 --PO Release Identifier
24866 , p_source_41 IN NUMBER
24867 )
24868 IS
24869
24870 l_component_type VARCHAR2(80);
24871 l_component_code VARCHAR2(30);
24872 l_component_type_code VARCHAR2(1);
24873 l_component_appl_id INTEGER;
24874 l_amb_context_code VARCHAR2(30);
24875 l_entity_code VARCHAR2(30);
24876 l_event_class_code VARCHAR2(30);
24877 l_ae_header_id NUMBER;
24878 l_event_type_code VARCHAR2(30);
24879 l_line_definition_code VARCHAR2(30);
24880 l_line_definition_owner_code VARCHAR2(1);
24881 --
24882 -- adr variables
24883 l_segment VARCHAR2(30);
24884 l_ccid NUMBER;
24885 l_adr_transaction_coa_id NUMBER;
24886 l_adr_accounting_coa_id NUMBER;
24887 l_adr_flexfield_segment_code VARCHAR2(30);
24888 l_adr_flex_value_set_id NUMBER;
24889 l_adr_value_type_code VARCHAR2(30);
24893 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24890 l_adr_value_combination_id NUMBER;
24891 l_adr_value_segment_code VARCHAR2(30);
24892
24894 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24895 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24896 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24897
24898 -- 4262811 Variables ------------------------------------------------------------------------------------------
24899 l_entered_amt_idx NUMBER;
24900 l_accted_amt_idx NUMBER;
24901 l_acc_rev_flag VARCHAR2(1);
24902 l_accrual_line_num NUMBER;
24903 l_tmp_amt NUMBER;
24904 l_acc_rev_natural_side_code VARCHAR2(1);
24905
24906 l_num_entries NUMBER;
24907 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24908 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24909 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24910 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24911 l_recog_line_1 NUMBER;
24912 l_recog_line_2 NUMBER;
24913
24914 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24915 l_bflow_applied_to_amt NUMBER; -- 5132302
24916 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24917
24918 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24919
24920 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24921 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24922
24923 ---------------------------------------------------------------------------------------------------------------
24924
24925
24926 --
24927 -- bulk performance
24928 --
24929 l_balance_type_code VARCHAR2(1);
24930 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24931 l_log_module VARCHAR2(240);
24932
24933 --
24934 -- Upgrade strategy
24935 --
24936 l_actual_upg_option VARCHAR2(1);
24937 l_enc_upg_option VARCHAR2(1);
24938
24939 --
24940 BEGIN
24941 --
24942 IF g_log_enabled THEN
24943 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
24944 END IF;
24945 --
24946 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24947
24948 trace
24949 (p_msg => 'BEGIN of AcctLineType_50'
24950 ,p_level => C_LEVEL_PROCEDURE
24951 ,p_module => l_log_module);
24952
24953 END IF;
24954 --
24955 l_component_type := 'AMB_JLT';
24956 l_component_code := 'FV_REL_CANCEL_REINST_PO_PA_DR';
24957 l_component_type_code := 'S';
24958 l_component_appl_id := 201;
24959 l_amb_context_code := 'DEFAULT';
24960 l_entity_code := 'RELEASE';
24961 l_event_class_code := 'RELEASE';
24962 l_event_type_code := 'RELEASE_ALL';
24963 l_line_definition_owner_code := 'S';
24964 l_line_definition_code := 'FV_RELEASE_ALL';
24965 --
24966 l_balance_type_code := 'A';
24967 l_segment := NULL;
24968 l_ccid := NULL;
24969 l_adr_transaction_coa_id := NULL;
24970 l_adr_accounting_coa_id := NULL;
24971 l_adr_flexfield_segment_code := NULL;
24972 l_adr_flex_value_set_id := NULL;
24973 l_adr_value_type_code := NULL;
24974 l_adr_value_combination_id := NULL;
24975 l_adr_value_segment_code := NULL;
24976
24977 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
24978 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
24979 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
24980 l_budgetary_control_flag := 'Y';
24981
24982 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24983 l_bflow_applied_to_amt := NULL; -- 5132302
24984 l_entered_amt_idx := NULL; -- 4262811
24985 l_accted_amt_idx := NULL; -- 4262811
24986 l_acc_rev_flag := NULL; -- 4262811
24987 l_accrual_line_num := NULL; -- 4262811
24988 l_tmp_amt := NULL; -- 4262811
24989 --
24990
24991 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24992 l_balance_type_code <> 'B' THEN
24993 IF (NVL(
24994 xla_ae_sources_pkg.GetSystemSourceChar(
24995 p_source_code => 'XLA_EVENT_TYPE_CODE'
24996 , p_source_type_code => 'Y'
24997 , p_source_application_id => 602
24998 ),'
24999 ') = 'RELEASE_CANCELLED' OR
25000 NVL(
25001 xla_ae_sources_pkg.GetSystemSourceChar(
25002 p_source_code => 'XLA_EVENT_TYPE_CODE'
25003 , p_source_type_code => 'Y'
25004 , p_source_application_id => 602
25005 ),'
25006 ') = 'RELEASE_CR_MEMO_CANCELLED') AND
25007 (NVL(p_source_13,'
25008 ') = 'B_PO' OR
25009 NVL(p_source_13,'
25010 ') = 'B_PA')
25011 THEN
25012
25013 --
25014 XLA_AE_LINES_PKG.SetNewLine;
25015
25016 p_balance_type_code := l_balance_type_code;
25017 -- set the flag so later we will know whether the gain loss line needs to be created
25018
25019 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25020 p_actual_flag :='A';
25021 END IF;
25022
25023 --
25024 -- bulk performance
25025 --
25026 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25027 p_header_num => 0); -- 4262811
25028 --
25029 -- set accounting line options
25030 --
25031 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25032 p_natural_side_code => 'D'
25033 , p_gain_or_loss_flag => 'N'
25034 , p_gl_transfer_mode_code => 'S'
25035 , p_acct_entry_type_code => 'A'
25036 , p_switch_side_flag => 'N'
25037 , p_merge_duplicate_code => 'N'
25038 );
25039 --
25040 l_acc_rev_natural_side_code := 'C'; -- 4262811
25041 --
25042 --
25043 -- set accounting line type info
25044 --
25045 xla_ae_lines_pkg.SetAcctLineType
25046 (p_component_type => l_component_type
25047 ,p_event_type_code => l_event_type_code
25048 ,p_line_definition_owner_code => l_line_definition_owner_code
25049 ,p_line_definition_code => l_line_definition_code
25050 ,p_accounting_line_code => l_component_code
25051 ,p_accounting_line_type_code => l_component_type_code
25052 ,p_accounting_line_appl_id => l_component_appl_id
25053 ,p_amb_context_code => l_amb_context_code
25054 ,p_entity_code => l_entity_code
25055 ,p_event_class_code => l_event_class_code);
25056 --
25057 -- set accounting class
25058 --
25059 xla_ae_lines_pkg.SetAcctClass(
25060 p_accounting_class_code => 'PURCHASE_ORDER'
25061 , p_ae_header_id => l_ae_header_id
25062 );
25063
25064 --
25065 -- set rounding class
25066 --
25067 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25068 'PURCHASE_ORDER';
25069
25070 --
25071 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25072 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25073 --
25074 -- bulk performance
25075 --
25076 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25077
25078 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25079 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25080
25081 -- 4955764
25082 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25083 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25084
25085 -- 4458381 Public Sector Enh
25086
25087 --
25088 -- set accounting attributes for the line type
25089 --
25090 l_entered_amt_idx := 23;
25091 l_accted_amt_idx := 25;
25092 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25093 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25094 l_rec_acct_attrs.array_char_value(1) := p_source_15;
25098 p_source_code => 'XLA_EVENT_APPL_ID'
25095 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
25096 l_rec_acct_attrs.array_num_value(2) :=
25097 xla_ae_sources_pkg.GetSystemSourceNum(
25099 , p_source_type_code => 'Y'
25100 , p_source_application_id => 602
25101 );
25102 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
25103 l_rec_acct_attrs.array_char_value(3) := p_source_33;
25104 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
25105 l_rec_acct_attrs.array_char_value(4) :=
25106 xla_ae_sources_pkg.GetSystemSourceChar(
25107 p_source_code => 'XLA_ENTITY_CODE'
25108 , p_source_type_code => 'Y'
25109 , p_source_application_id => 602
25110 );
25111 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
25112 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
25113 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
25114 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
25115 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
25116 l_rec_acct_attrs.array_num_value(7) := p_source_21;
25117 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25118 l_rec_acct_attrs.array_char_value(8) := p_source_22;
25119 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
25120 l_rec_acct_attrs.array_char_value(9) := p_source_23;
25121 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
25122 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
25123 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25124 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
25125 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
25126 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
25127 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
25128 l_rec_acct_attrs.array_char_value(13) := p_source_17;
25129 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
25130 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
25131 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
25132 l_rec_acct_attrs.array_num_value(15) := p_source_26;
25133 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
25134 l_rec_acct_attrs.array_char_value(16) := p_source_27;
25135 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
25136 l_rec_acct_attrs.array_num_value(17) := p_source_28;
25137 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
25138 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
25139 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
25140 l_rec_acct_attrs.array_num_value(19) := p_source_26;
25141 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
25142 l_rec_acct_attrs.array_char_value(20) := p_source_27;
25143 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
25144 l_rec_acct_attrs.array_num_value(21) := p_source_28;
25145 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
25146 l_rec_acct_attrs.array_char_value(22) := p_source_29;
25147 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
25148 l_rec_acct_attrs.array_num_value(23) := p_source_26;
25149 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
25150 l_rec_acct_attrs.array_char_value(24) := p_source_27;
25151 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
25152 l_rec_acct_attrs.array_num_value(25) := p_source_28;
25153 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
25154 l_rec_acct_attrs.array_char_value(26) := p_source_31;
25155 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
25156 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
25157 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
25158 l_rec_acct_attrs.array_char_value(28) := p_source_22;
25159 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
25160 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
25161 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
25162 l_rec_acct_attrs.array_num_value(30) := p_source_32;
25163 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
25164 l_rec_acct_attrs.array_num_value(31) := p_source_32;
25165
25166 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25167 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25168
25169 ---------------------------------------------------------------------------------------------------------------
25170 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25171 ---------------------------------------------------------------------------------------------------------------
25172 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25173
25174 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25175 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25176
25177 IF xla_accounting_cache_pkg.GetValueChar
25178 (p_source_code => 'LEDGER_CATEGORY_CODE'
25179 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25180 AND l_bflow_method_code = 'PRIOR_ENTRY'
25181 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25182 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25183 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25184 )
25185 THEN
25186 xla_ae_lines_pkg.BflowUpgEntry
25187 (p_business_method_code => l_bflow_method_code
25188 ,p_business_class_code => l_bflow_class_code
25189 ,p_balance_type => l_balance_type_code);
25190 ELSE
25191 NULL;
25192 XLA_AE_LINES_PKG.business_flow_validation(
25193 p_business_method_code => l_bflow_method_code
25194 ,p_business_class_code => l_bflow_class_code
25195 ,p_inherit_description_flag => l_inherit_desc_flag);
25196 END IF;
25197
25198 --
25199 -- call analytical criteria
25200 --
25201 -- Inherited Analytical Criteria for business flow method of Prior Entry.
25202 --
25203 -- call description
25204 --
25205 -- No description or it is inherited.
25206 --
25207 -- call ADRs
25208 -- Bug 4922099
25209 --
25210 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25211 (NVL(l_actual_upg_option, 'N') = 'O') OR
25212 (NVL(l_enc_upg_option, 'N') = 'O')
25213 )
25214 THEN
25215 NULL;
25216 --
25217 --
25218
25219 --
25220 --
25221 END IF;
25222 --
25223 -- Bug 4922099
25224 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25225 (NVL(l_enc_upg_option, 'N') = 'O')
25226 ) AND
25227 (l_bflow_method_code = 'PRIOR_ENTRY')
25228 )
25229 THEN
25230 IF
25231 --
25232 1 = 1
25233 --
25234 THEN
25235 xla_accounting_err_pkg.build_message
25236 (p_appli_s_name => 'XLA'
25237 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25238 ,p_token_1 => 'LINE_NUMBER'
25239 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25240 ,p_token_2 => 'LINE_TYPE_NAME'
25241 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25242 l_component_type
25243 ,l_component_code
25244 ,l_component_type_code
25245 ,l_component_appl_id
25246 ,l_amb_context_code
25247 ,l_entity_code
25248 ,l_event_class_code
25249 )
25250 ,p_token_3 => 'OWNER'
25251 ,p_value_3 => xla_lookups_pkg.get_meaning(
25252 p_lookup_type => 'XLA_OWNER_TYPE'
25253 ,p_lookup_code => l_component_type_code
25254 )
25255 ,p_token_4 => 'PRODUCT_NAME'
25256 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25257 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25258 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25259 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25260 ,p_ae_header_id => NULL
25261 );
25262
25263 IF (C_LEVEL_ERROR>= g_log_level) THEN
25264 trace
25265 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25266 ,p_level => C_LEVEL_ERROR
25267 ,p_module => l_log_module);
25268 END IF;
25269 END IF;
25270 END IF;
25271 --
25272 --
25273 ------------------------------------------------------------------------------------------------
25274 -- 4219869 Business Flow
25275 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25276 -- Prior Entry. Currently, the following code is always generated.
25280 ------------------------------------------------------------------------------------
25277 ------------------------------------------------------------------------------------------------
25278 -- No ValidateCurrentLine for business flow method of Prior Entry
25279
25281 -- 4219869 Business Flow
25282 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25283 ------------------------------------------------------------------------------------
25284 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25285
25286 ----------------------------------------------------------------------------------
25287 -- 4219869 Business Flow
25288 -- Update journal entry status -- Need to generate this within IF <condition>
25289 ----------------------------------------------------------------------------------
25290 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25291 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25292 ,p_balance_type_code => l_balance_type_code
25293 );
25294
25295 -------------------------------------------------------------------------------------------
25296 -- 4262811 - Generate the Accrual Reversal lines
25297 -------------------------------------------------------------------------------------------
25298 BEGIN
25299 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25300 (g_array_event(p_event_id).array_value_num('header_index'));
25301 IF l_acc_rev_flag IS NULL THEN
25302 l_acc_rev_flag := 'N';
25303 END IF;
25304 EXCEPTION
25305 WHEN OTHERS THEN
25306 l_acc_rev_flag := 'N';
25307 END;
25308 --
25309 IF (l_acc_rev_flag = 'Y') THEN
25310
25311 -- 4645092 ------------------------------------------------------------------------------
25312 -- To allow MPA report to determine if it should generate report process
25313 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25314 ------------------------------------------------------------------------------------------
25315
25316 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25317 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25318
25319 --
25320 -- Update the line information that should be overwritten
25321 --
25322 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25323 p_header_num => 1);
25324 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25325
25326 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25327
25328 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25329 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25330 END IF;
25331
25332 --
25333 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25334 --
25335 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25336 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25337 ELSE
25338 ---------------------------------------------------------------------------------------------------
25339 -- 4262811a Switch Sign
25340 ---------------------------------------------------------------------------------------------------
25341 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25342 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25343 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25344 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25345 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25346 -- 5132302
25347 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25348 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25349
25350 END IF;
25351
25352 -- 4955764
25353 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25354 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25355
25356
25357 XLA_AE_LINES_PKG.ValidateCurrentLine;
25358 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25359
25360 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25361 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25362 ,p_balance_type_code => l_balance_type_code);
25363
25364 END IF;
25365
25366 -----------------------------------------------------------------------------------------
25367 -- 4262811 Multiperiod Accounting
25368 -----------------------------------------------------------------------------------------
25369 -- No MPA option is assigned.
25370
25371
25372 END IF;
25373 END IF;
25374 --
25375
25376 --
25377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25378 trace
25379 (p_msg => 'END of AcctLineType_50'
25380 ,p_level => C_LEVEL_PROCEDURE
25381 ,p_module => l_log_module);
25382 END IF;
25383 --
25384 EXCEPTION
25385 WHEN xla_exceptions_pkg.application_exception THEN
25386 RAISE;
25387 WHEN OTHERS THEN
25388 xla_exceptions_pkg.raise_message
25389 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_50');
25393 ---------------------------------------
25390 END AcctLineType_50;
25391 --
25392
25394 --
25395 -- PRIVATE FUNCTION
25396 -- AcctLineType_51
25397 --
25398 ---------------------------------------
25399 PROCEDURE AcctLineType_51 (
25400 p_application_id IN NUMBER
25401 ,p_event_id IN NUMBER
25402 ,p_calculate_acctd_flag IN VARCHAR2
25403 ,p_calculate_g_l_flag IN VARCHAR2
25404 ,p_actual_flag IN OUT VARCHAR2
25405 ,p_balance_type_code OUT VARCHAR2
25406 ,p_gain_or_loss_ref OUT VARCHAR2
25407
25408 --Budget Account
25409 , p_source_9 IN NUMBER
25410 --Main Or Backing Code
25411 , p_source_13 IN VARCHAR2
25412 --Accounting Reversal Flag
25413 , p_source_15 IN VARCHAR2
25414 --Distribution Link Type
25415 , p_source_17 IN VARCHAR2
25416 --PO Distribution Identifier
25417 , p_source_19 IN NUMBER
25418 --Applied To Application Identifier
25419 , p_source_21 IN NUMBER
25420 --Applied To Distribution Link Type
25421 , p_source_22 IN VARCHAR2
25422 --Applied To Entity Code
25423 , p_source_23 IN VARCHAR2
25424 --Applied To Distribution Identifier 1
25425 , p_source_24 IN NUMBER
25426 --Applied To Header Identifier 1
25427 , p_source_25 IN NUMBER
25428 --Entered Amount
25429 , p_source_26 IN NUMBER
25430 --Currency Code
25431 , p_source_27 IN VARCHAR2
25432 --Accounted Amount
25433 , p_source_28 IN NUMBER
25434 --PO Encumbrance Upgrade Option
25435 , p_source_29 IN VARCHAR2
25436 --JFMIP Reference
25437 , p_source_31 IN VARCHAR2
25438 --PO Upgrade Encumbrance Type Identifier
25439 , p_source_32 IN NUMBER
25440 --Allocated to Main Document Distribution Type
25441 , p_source_33 IN VARCHAR2
25442 --Allocated to Main Document Distribution Identifier
25443 , p_source_34 IN NUMBER
25444 --PO Release Identifier
25445 , p_source_41 IN NUMBER
25446 )
25447 IS
25448
25449 l_component_type VARCHAR2(80);
25450 l_component_code VARCHAR2(30);
25451 l_component_type_code VARCHAR2(1);
25452 l_component_appl_id INTEGER;
25453 l_amb_context_code VARCHAR2(30);
25454 l_entity_code VARCHAR2(30);
25455 l_event_class_code VARCHAR2(30);
25456 l_ae_header_id NUMBER;
25457 l_event_type_code VARCHAR2(30);
25458 l_line_definition_code VARCHAR2(30);
25459 l_line_definition_owner_code VARCHAR2(1);
25460 --
25461 -- adr variables
25462 l_segment VARCHAR2(30);
25463 l_ccid NUMBER;
25464 l_adr_transaction_coa_id NUMBER;
25465 l_adr_accounting_coa_id NUMBER;
25466 l_adr_flexfield_segment_code VARCHAR2(30);
25467 l_adr_flex_value_set_id NUMBER;
25468 l_adr_value_type_code VARCHAR2(30);
25469 l_adr_value_combination_id NUMBER;
25470 l_adr_value_segment_code VARCHAR2(30);
25471
25472 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25473 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25474 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25475 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25476
25477 -- 4262811 Variables ------------------------------------------------------------------------------------------
25478 l_entered_amt_idx NUMBER;
25479 l_accted_amt_idx NUMBER;
25480 l_acc_rev_flag VARCHAR2(1);
25481 l_accrual_line_num NUMBER;
25482 l_tmp_amt NUMBER;
25483 l_acc_rev_natural_side_code VARCHAR2(1);
25484
25485 l_num_entries NUMBER;
25486 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25487 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25488 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25489 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25490 l_recog_line_1 NUMBER;
25491 l_recog_line_2 NUMBER;
25492
25493 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25494 l_bflow_applied_to_amt NUMBER; -- 5132302
25495 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25496
25497 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25498
25499 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25500 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25501
25502 ---------------------------------------------------------------------------------------------------------------
25503
25504
25505 --
25506 -- bulk performance
25507 --
25508 l_balance_type_code VARCHAR2(1);
25509 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25510 l_log_module VARCHAR2(240);
25511
25512 --
25513 -- Upgrade strategy
25514 --
25515 l_actual_upg_option VARCHAR2(1);
25516 l_enc_upg_option VARCHAR2(1);
25517
25518 --
25519 BEGIN
25520 --
25521 IF g_log_enabled THEN
25522 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
25523 END IF;
25524 --
25525 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25526
25527 trace
25528 (p_msg => 'BEGIN of AcctLineType_51'
25529 ,p_level => C_LEVEL_PROCEDURE
25530 ,p_module => l_log_module);
25531
25532 END IF;
25533 --
25534 l_component_type := 'AMB_JLT';
25535 l_component_code := 'FV_REL_CANCEL_REINST_REQ_CR';
25536 l_component_type_code := 'S';
25537 l_component_appl_id := 201;
25538 l_amb_context_code := 'DEFAULT';
25539 l_entity_code := 'RELEASE';
25540 l_event_class_code := 'RELEASE';
25541 l_event_type_code := 'RELEASE_ALL';
25542 l_line_definition_owner_code := 'S';
25543 l_line_definition_code := 'FV_RELEASE_ALL';
25544 --
25545 l_balance_type_code := 'A';
25546 l_segment := NULL;
25547 l_ccid := NULL;
25548 l_adr_transaction_coa_id := NULL;
25549 l_adr_accounting_coa_id := NULL;
25550 l_adr_flexfield_segment_code := NULL;
25551 l_adr_flex_value_set_id := NULL;
25552 l_adr_value_type_code := NULL;
25553 l_adr_value_combination_id := NULL;
25554 l_adr_value_segment_code := NULL;
25555
25556 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
25557 l_bflow_class_code := 'FV_REQ_CR'; -- 4219869 Business Flow
25558 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
25559 l_budgetary_control_flag := 'Y';
25560
25561 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25562 l_bflow_applied_to_amt := NULL; -- 5132302
25563 l_entered_amt_idx := NULL; -- 4262811
25564 l_accted_amt_idx := NULL; -- 4262811
25565 l_acc_rev_flag := NULL; -- 4262811
25566 l_accrual_line_num := NULL; -- 4262811
25567 l_tmp_amt := NULL; -- 4262811
25568 --
25569
25570 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25571 l_balance_type_code <> 'B' THEN
25572 IF (NVL(
25573 xla_ae_sources_pkg.GetSystemSourceChar(
25574 p_source_code => 'XLA_EVENT_TYPE_CODE'
25575 , p_source_type_code => 'Y'
25576 , p_source_application_id => 602
25577 ),'
25578 ') = 'RELEASE_CANCELLED' OR
25579 NVL(
25580 xla_ae_sources_pkg.GetSystemSourceChar(
25581 p_source_code => 'XLA_EVENT_TYPE_CODE'
25582 , p_source_type_code => 'Y'
25583 , p_source_application_id => 602
25584 ),'
25585 ') = 'RELEASE_CR_MEMO_CANCELLED') AND
25586 NVL(p_source_13,'
25587 ') = 'B_REQ'
25588 THEN
25589
25590 --
25591 XLA_AE_LINES_PKG.SetNewLine;
25592
25593 p_balance_type_code := l_balance_type_code;
25594 -- set the flag so later we will know whether the gain loss line needs to be created
25595
25596 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25597 p_actual_flag :='A';
25598 END IF;
25599
25600 --
25601 -- bulk performance
25602 --
25603 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25604 p_header_num => 0); -- 4262811
25605 --
25606 -- set accounting line options
25607 --
25608 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25609 p_natural_side_code => 'C'
25610 , p_gain_or_loss_flag => 'N'
25611 , p_gl_transfer_mode_code => 'S'
25612 , p_acct_entry_type_code => 'A'
25613 , p_switch_side_flag => 'N'
25614 , p_merge_duplicate_code => 'N'
25615 );
25616 --
25617 l_acc_rev_natural_side_code := 'D'; -- 4262811
25618 --
25619 --
25620 -- set accounting line type info
25621 --
25622 xla_ae_lines_pkg.SetAcctLineType
25623 (p_component_type => l_component_type
25624 ,p_event_type_code => l_event_type_code
25625 ,p_line_definition_owner_code => l_line_definition_owner_code
25626 ,p_line_definition_code => l_line_definition_code
25627 ,p_accounting_line_code => l_component_code
25628 ,p_accounting_line_type_code => l_component_type_code
25629 ,p_accounting_line_appl_id => l_component_appl_id
25630 ,p_amb_context_code => l_amb_context_code
25631 ,p_entity_code => l_entity_code
25632 ,p_event_class_code => l_event_class_code);
25633 --
25634 -- set accounting class
25635 --
25636 xla_ae_lines_pkg.SetAcctClass(
25637 p_accounting_class_code => 'PURCHASE_ORDER'
25638 , p_ae_header_id => l_ae_header_id
25639 );
25640
25641 --
25642 -- set rounding class
25643 --
25644 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25645 'PURCHASE_ORDER';
25646
25647 --
25648 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25649 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25650 --
25651 -- bulk performance
25652 --
25653 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25654
25655 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25656 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25657
25658 -- 4955764
25659 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25660 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25661
25662 -- 4458381 Public Sector Enh
25663
25664 --
25665 -- set accounting attributes for the line type
25666 --
25667 l_entered_amt_idx := 23;
25668 l_accted_amt_idx := 25;
25669 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25670 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25671 l_rec_acct_attrs.array_char_value(1) := p_source_15;
25672 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
25673 l_rec_acct_attrs.array_num_value(2) :=
25674 xla_ae_sources_pkg.GetSystemSourceNum(
25675 p_source_code => 'XLA_EVENT_APPL_ID'
25676 , p_source_type_code => 'Y'
25677 , p_source_application_id => 602
25678 );
25679 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
25680 l_rec_acct_attrs.array_char_value(3) := p_source_33;
25681 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
25682 l_rec_acct_attrs.array_char_value(4) :=
25683 xla_ae_sources_pkg.GetSystemSourceChar(
25684 p_source_code => 'XLA_ENTITY_CODE'
25685 , p_source_type_code => 'Y'
25686 , p_source_application_id => 602
25687 );
25688 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
25689 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
25690 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
25691 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
25692 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
25693 l_rec_acct_attrs.array_num_value(7) := p_source_21;
25694 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25695 l_rec_acct_attrs.array_char_value(8) := p_source_22;
25696 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
25697 l_rec_acct_attrs.array_char_value(9) := p_source_23;
25698 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
25699 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
25700 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25701 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
25702 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
25703 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
25704 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
25705 l_rec_acct_attrs.array_char_value(13) := p_source_17;
25706 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
25707 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
25708 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
25709 l_rec_acct_attrs.array_num_value(15) := p_source_26;
25710 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
25711 l_rec_acct_attrs.array_char_value(16) := p_source_27;
25715 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
25712 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
25713 l_rec_acct_attrs.array_num_value(17) := p_source_28;
25714 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
25716 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
25717 l_rec_acct_attrs.array_num_value(19) := p_source_26;
25718 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
25719 l_rec_acct_attrs.array_char_value(20) := p_source_27;
25720 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
25721 l_rec_acct_attrs.array_num_value(21) := p_source_28;
25722 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
25723 l_rec_acct_attrs.array_char_value(22) := p_source_29;
25724 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
25725 l_rec_acct_attrs.array_num_value(23) := p_source_26;
25726 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
25727 l_rec_acct_attrs.array_char_value(24) := p_source_27;
25728 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
25729 l_rec_acct_attrs.array_num_value(25) := p_source_28;
25730 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
25731 l_rec_acct_attrs.array_char_value(26) := p_source_31;
25732 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
25733 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
25734 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
25735 l_rec_acct_attrs.array_char_value(28) := p_source_22;
25736 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
25737 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
25738 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
25739 l_rec_acct_attrs.array_num_value(30) := p_source_32;
25740 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
25741 l_rec_acct_attrs.array_num_value(31) := p_source_32;
25742
25743 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25744 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25745
25746 ---------------------------------------------------------------------------------------------------------------
25747 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25748 ---------------------------------------------------------------------------------------------------------------
25749 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25750
25751 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25752 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25753
25754 IF xla_accounting_cache_pkg.GetValueChar
25755 (p_source_code => 'LEDGER_CATEGORY_CODE'
25756 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25757 AND l_bflow_method_code = 'PRIOR_ENTRY'
25758 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25759 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25760 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25761 )
25762 THEN
25763 xla_ae_lines_pkg.BflowUpgEntry
25764 (p_business_method_code => l_bflow_method_code
25765 ,p_business_class_code => l_bflow_class_code
25766 ,p_balance_type => l_balance_type_code);
25767 ELSE
25768 NULL;
25769 XLA_AE_LINES_PKG.business_flow_validation(
25770 p_business_method_code => l_bflow_method_code
25771 ,p_business_class_code => l_bflow_class_code
25772 ,p_inherit_description_flag => l_inherit_desc_flag);
25773 END IF;
25774
25775 --
25776 -- call analytical criteria
25777 --
25778 -- Inherited Analytical Criteria for business flow method of Prior Entry.
25779 --
25780 -- call description
25781 --
25782 -- No description or it is inherited.
25783 --
25784 -- call ADRs
25785 -- Bug 4922099
25786 --
25787 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25788 (NVL(l_actual_upg_option, 'N') = 'O') OR
25789 (NVL(l_enc_upg_option, 'N') = 'O')
25790 )
25791 THEN
25792 NULL;
25793 --
25794 --
25795
25796 --
25797 --
25798 END IF;
25799 --
25800 -- Bug 4922099
25801 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25802 (NVL(l_enc_upg_option, 'N') = 'O')
25803 ) AND
25804 (l_bflow_method_code = 'PRIOR_ENTRY')
25805 )
25806 THEN
25807 IF
25808 --
25809 1 = 1
25810 --
25811 THEN
25812 xla_accounting_err_pkg.build_message
25813 (p_appli_s_name => 'XLA'
25814 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25815 ,p_token_1 => 'LINE_NUMBER'
25816 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25817 ,p_token_2 => 'LINE_TYPE_NAME'
25818 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25819 l_component_type
25820 ,l_component_code
25821 ,l_component_type_code
25822 ,l_component_appl_id
25823 ,l_amb_context_code
25824 ,l_entity_code
25825 ,l_event_class_code
25826 )
25827 ,p_token_3 => 'OWNER'
25828 ,p_value_3 => xla_lookups_pkg.get_meaning(
25829 p_lookup_type => 'XLA_OWNER_TYPE'
25830 ,p_lookup_code => l_component_type_code
25831 )
25832 ,p_token_4 => 'PRODUCT_NAME'
25833 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25834 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25835 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25836 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25837 ,p_ae_header_id => NULL
25838 );
25839
25840 IF (C_LEVEL_ERROR>= g_log_level) THEN
25841 trace
25842 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25843 ,p_level => C_LEVEL_ERROR
25844 ,p_module => l_log_module);
25845 END IF;
25846 END IF;
25847 END IF;
25848 --
25849 --
25850 ------------------------------------------------------------------------------------------------
25851 -- 4219869 Business Flow
25852 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25853 -- Prior Entry. Currently, the following code is always generated.
25854 ------------------------------------------------------------------------------------------------
25855 -- No ValidateCurrentLine for business flow method of Prior Entry
25856
25857 ------------------------------------------------------------------------------------
25858 -- 4219869 Business Flow
25859 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25860 ------------------------------------------------------------------------------------
25861 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25862
25863 ----------------------------------------------------------------------------------
25864 -- 4219869 Business Flow
25865 -- Update journal entry status -- Need to generate this within IF <condition>
25866 ----------------------------------------------------------------------------------
25867 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25868 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25869 ,p_balance_type_code => l_balance_type_code
25870 );
25871
25872 -------------------------------------------------------------------------------------------
25873 -- 4262811 - Generate the Accrual Reversal lines
25874 -------------------------------------------------------------------------------------------
25875 BEGIN
25876 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25877 (g_array_event(p_event_id).array_value_num('header_index'));
25878 IF l_acc_rev_flag IS NULL THEN
25879 l_acc_rev_flag := 'N';
25880 END IF;
25881 EXCEPTION
25882 WHEN OTHERS THEN
25883 l_acc_rev_flag := 'N';
25884 END;
25885 --
25886 IF (l_acc_rev_flag = 'Y') THEN
25887
25888 -- 4645092 ------------------------------------------------------------------------------
25889 -- To allow MPA report to determine if it should generate report process
25890 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25891 ------------------------------------------------------------------------------------------
25892
25893 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25894 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25895
25896 --
25897 -- Update the line information that should be overwritten
25898 --
25902
25899 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25900 p_header_num => 1);
25901 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25903 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25904
25905 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25906 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25907 END IF;
25908
25909 --
25910 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25911 --
25912 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25913 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25914 ELSE
25915 ---------------------------------------------------------------------------------------------------
25916 -- 4262811a Switch Sign
25917 ---------------------------------------------------------------------------------------------------
25918 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25919 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25920 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25921 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25922 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25923 -- 5132302
25924 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25925 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25926
25927 END IF;
25928
25929 -- 4955764
25930 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25931 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25932
25933
25934 XLA_AE_LINES_PKG.ValidateCurrentLine;
25935 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25936
25937 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25938 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25939 ,p_balance_type_code => l_balance_type_code);
25940
25941 END IF;
25942
25943 -----------------------------------------------------------------------------------------
25944 -- 4262811 Multiperiod Accounting
25945 -----------------------------------------------------------------------------------------
25946 -- No MPA option is assigned.
25947
25948
25949 END IF;
25950 END IF;
25951 --
25952
25953 --
25954 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25955 trace
25956 (p_msg => 'END of AcctLineType_51'
25957 ,p_level => C_LEVEL_PROCEDURE
25958 ,p_module => l_log_module);
25959 END IF;
25960 --
25961 EXCEPTION
25962 WHEN xla_exceptions_pkg.application_exception THEN
25963 RAISE;
25964 WHEN OTHERS THEN
25965 xla_exceptions_pkg.raise_message
25966 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_51');
25967 END AcctLineType_51;
25968 --
25969
25970 ---------------------------------------
25971 --
25972 -- PRIVATE FUNCTION
25973 -- AcctLineType_52
25974 --
25975 ---------------------------------------
25976 PROCEDURE AcctLineType_52 (
25977 p_application_id IN NUMBER
25978 ,p_event_id IN NUMBER
25979 ,p_calculate_acctd_flag IN VARCHAR2
25980 ,p_calculate_g_l_flag IN VARCHAR2
25981 ,p_actual_flag IN OUT VARCHAR2
25982 ,p_balance_type_code OUT VARCHAR2
25983 ,p_gain_or_loss_ref OUT VARCHAR2
25984
25985 --Budget Account
25986 , p_source_9 IN NUMBER
25987 --Main Or Backing Code
25988 , p_source_13 IN VARCHAR2
25989 --Accounting Reversal Flag
25990 , p_source_15 IN VARCHAR2
25991 --Distribution Link Type
25992 , p_source_17 IN VARCHAR2
25993 --PO Distribution Identifier
25994 , p_source_19 IN NUMBER
25995 --Applied To Application Identifier
25996 , p_source_21 IN NUMBER
25997 --Applied To Distribution Link Type
25998 , p_source_22 IN VARCHAR2
25999 --Applied To Entity Code
26000 , p_source_23 IN VARCHAR2
26001 --Applied To Distribution Identifier 1
26002 , p_source_24 IN NUMBER
26003 --Applied To Header Identifier 1
26004 , p_source_25 IN NUMBER
26005 --Entered Amount
26006 , p_source_26 IN NUMBER
26007 --Currency Code
26008 , p_source_27 IN VARCHAR2
26009 --Accounted Amount
26010 , p_source_28 IN NUMBER
26011 --PO Encumbrance Upgrade Option
26012 , p_source_29 IN VARCHAR2
26013 --JFMIP Reference
26014 , p_source_31 IN VARCHAR2
26015 --PO Upgrade Encumbrance Type Identifier
26016 , p_source_32 IN NUMBER
26017 --Allocated to Main Document Distribution Type
26018 , p_source_33 IN VARCHAR2
26019 --Allocated to Main Document Distribution Identifier
26020 , p_source_34 IN NUMBER
26021 --PO Release Identifier
26022 , p_source_41 IN NUMBER
26023 )
26024 IS
26025
26026 l_component_type VARCHAR2(80);
26027 l_component_code VARCHAR2(30);
26028 l_component_type_code VARCHAR2(1);
26029 l_component_appl_id INTEGER;
26030 l_amb_context_code VARCHAR2(30);
26031 l_entity_code VARCHAR2(30);
26032 l_event_class_code VARCHAR2(30);
26033 l_ae_header_id NUMBER;
26034 l_event_type_code VARCHAR2(30);
26035 l_line_definition_code VARCHAR2(30);
26036 l_line_definition_owner_code VARCHAR2(1);
26037 --
26038 -- adr variables
26039 l_segment VARCHAR2(30);
26040 l_ccid NUMBER;
26041 l_adr_transaction_coa_id NUMBER;
26042 l_adr_accounting_coa_id NUMBER;
26043 l_adr_flexfield_segment_code VARCHAR2(30);
26044 l_adr_flex_value_set_id NUMBER;
26045 l_adr_value_type_code VARCHAR2(30);
26046 l_adr_value_combination_id NUMBER;
26047 l_adr_value_segment_code VARCHAR2(30);
26048
26049 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26050 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26051 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26052 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26053
26054 -- 4262811 Variables ------------------------------------------------------------------------------------------
26055 l_entered_amt_idx NUMBER;
26056 l_accted_amt_idx NUMBER;
26057 l_acc_rev_flag VARCHAR2(1);
26058 l_accrual_line_num NUMBER;
26059 l_tmp_amt NUMBER;
26060 l_acc_rev_natural_side_code VARCHAR2(1);
26061
26062 l_num_entries NUMBER;
26063 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26064 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26065 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26066 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26067 l_recog_line_1 NUMBER;
26068 l_recog_line_2 NUMBER;
26069
26070 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26071 l_bflow_applied_to_amt NUMBER; -- 5132302
26072 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26073
26074 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26075
26076 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26077 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26078
26079 ---------------------------------------------------------------------------------------------------------------
26080
26081
26082 --
26083 -- bulk performance
26084 --
26085 l_balance_type_code VARCHAR2(1);
26086 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26087 l_log_module VARCHAR2(240);
26088
26089 --
26090 -- Upgrade strategy
26091 --
26092 l_actual_upg_option VARCHAR2(1);
26093 l_enc_upg_option VARCHAR2(1);
26094
26095 --
26096 BEGIN
26097 --
26098 IF g_log_enabled THEN
26099 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
26100 END IF;
26101 --
26102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26103
26104 trace
26105 (p_msg => 'BEGIN of AcctLineType_52'
26106 ,p_level => C_LEVEL_PROCEDURE
26110 --
26107 ,p_module => l_log_module);
26108
26109 END IF;
26111 l_component_type := 'AMB_JLT';
26112 l_component_code := 'FV_REL_CANCEL_REINST_REQ_DR';
26113 l_component_type_code := 'S';
26114 l_component_appl_id := 201;
26115 l_amb_context_code := 'DEFAULT';
26116 l_entity_code := 'RELEASE';
26117 l_event_class_code := 'RELEASE';
26118 l_event_type_code := 'RELEASE_ALL';
26119 l_line_definition_owner_code := 'S';
26120 l_line_definition_code := 'FV_RELEASE_ALL';
26121 --
26122 l_balance_type_code := 'A';
26123 l_segment := NULL;
26124 l_ccid := NULL;
26125 l_adr_transaction_coa_id := NULL;
26126 l_adr_accounting_coa_id := NULL;
26127 l_adr_flexfield_segment_code := NULL;
26128 l_adr_flex_value_set_id := NULL;
26129 l_adr_value_type_code := NULL;
26130 l_adr_value_combination_id := NULL;
26131 l_adr_value_segment_code := NULL;
26132
26133 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
26134 l_bflow_class_code := 'FV_REQ_DR'; -- 4219869 Business Flow
26135 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
26136 l_budgetary_control_flag := 'Y';
26137
26138 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26139 l_bflow_applied_to_amt := NULL; -- 5132302
26140 l_entered_amt_idx := NULL; -- 4262811
26141 l_accted_amt_idx := NULL; -- 4262811
26142 l_acc_rev_flag := NULL; -- 4262811
26143 l_accrual_line_num := NULL; -- 4262811
26144 l_tmp_amt := NULL; -- 4262811
26145 --
26146
26147 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26148 l_balance_type_code <> 'B' THEN
26149 IF (NVL(
26150 xla_ae_sources_pkg.GetSystemSourceChar(
26151 p_source_code => 'XLA_EVENT_TYPE_CODE'
26152 , p_source_type_code => 'Y'
26153 , p_source_application_id => 602
26154 ),'
26155 ') = 'RELEASE_CANCELLED' OR
26156 NVL(
26157 xla_ae_sources_pkg.GetSystemSourceChar(
26158 p_source_code => 'XLA_EVENT_TYPE_CODE'
26159 , p_source_type_code => 'Y'
26160 , p_source_application_id => 602
26161 ),'
26162 ') = 'RELEASE_CR_MEMO_CANCELLED') AND
26163 NVL(p_source_13,'
26164 ') = 'B_REQ'
26165 THEN
26166
26167 --
26168 XLA_AE_LINES_PKG.SetNewLine;
26169
26170 p_balance_type_code := l_balance_type_code;
26171 -- set the flag so later we will know whether the gain loss line needs to be created
26172
26173 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26174 p_actual_flag :='A';
26175 END IF;
26176
26177 --
26178 -- bulk performance
26179 --
26180 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26181 p_header_num => 0); -- 4262811
26182 --
26183 -- set accounting line options
26184 --
26185 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26186 p_natural_side_code => 'D'
26187 , p_gain_or_loss_flag => 'N'
26188 , p_gl_transfer_mode_code => 'S'
26189 , p_acct_entry_type_code => 'A'
26190 , p_switch_side_flag => 'N'
26191 , p_merge_duplicate_code => 'N'
26192 );
26193 --
26194 l_acc_rev_natural_side_code := 'C'; -- 4262811
26195 --
26196 --
26197 -- set accounting line type info
26198 --
26199 xla_ae_lines_pkg.SetAcctLineType
26200 (p_component_type => l_component_type
26201 ,p_event_type_code => l_event_type_code
26202 ,p_line_definition_owner_code => l_line_definition_owner_code
26203 ,p_line_definition_code => l_line_definition_code
26204 ,p_accounting_line_code => l_component_code
26205 ,p_accounting_line_type_code => l_component_type_code
26206 ,p_accounting_line_appl_id => l_component_appl_id
26207 ,p_amb_context_code => l_amb_context_code
26208 ,p_entity_code => l_entity_code
26209 ,p_event_class_code => l_event_class_code);
26210 --
26211 -- set accounting class
26212 --
26213 xla_ae_lines_pkg.SetAcctClass(
26214 p_accounting_class_code => 'PURCHASE_ORDER'
26215 , p_ae_header_id => l_ae_header_id
26216 );
26217
26218 --
26219 -- set rounding class
26220 --
26221 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26222 'PURCHASE_ORDER';
26223
26224 --
26225 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26226 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26227 --
26228 -- bulk performance
26229 --
26230 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26231
26232 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26233 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26234
26235 -- 4955764
26236 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26237 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26238
26239 -- 4458381 Public Sector Enh
26240
26241 --
26242 -- set accounting attributes for the line type
26243 --
26244 l_entered_amt_idx := 23;
26245 l_accted_amt_idx := 25;
26246 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26247 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26248 l_rec_acct_attrs.array_char_value(1) := p_source_15;
26249 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
26250 l_rec_acct_attrs.array_num_value(2) :=
26251 xla_ae_sources_pkg.GetSystemSourceNum(
26252 p_source_code => 'XLA_EVENT_APPL_ID'
26253 , p_source_type_code => 'Y'
26254 , p_source_application_id => 602
26255 );
26256 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
26257 l_rec_acct_attrs.array_char_value(3) := p_source_33;
26258 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
26259 l_rec_acct_attrs.array_char_value(4) :=
26260 xla_ae_sources_pkg.GetSystemSourceChar(
26261 p_source_code => 'XLA_ENTITY_CODE'
26262 , p_source_type_code => 'Y'
26263 , p_source_application_id => 602
26264 );
26265 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
26266 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
26267 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
26268 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
26269 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
26270 l_rec_acct_attrs.array_num_value(7) := p_source_21;
26271 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26272 l_rec_acct_attrs.array_char_value(8) := p_source_22;
26273 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
26274 l_rec_acct_attrs.array_char_value(9) := p_source_23;
26275 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
26276 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
26277 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26278 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
26279 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
26280 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
26281 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
26282 l_rec_acct_attrs.array_char_value(13) := p_source_17;
26283 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
26284 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
26285 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
26286 l_rec_acct_attrs.array_num_value(15) := p_source_26;
26287 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
26288 l_rec_acct_attrs.array_char_value(16) := p_source_27;
26289 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
26290 l_rec_acct_attrs.array_num_value(17) := p_source_28;
26291 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
26292 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
26293 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
26294 l_rec_acct_attrs.array_num_value(19) := p_source_26;
26295 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
26296 l_rec_acct_attrs.array_char_value(20) := p_source_27;
26297 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
26298 l_rec_acct_attrs.array_num_value(21) := p_source_28;
26299 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
26300 l_rec_acct_attrs.array_char_value(22) := p_source_29;
26301 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
26302 l_rec_acct_attrs.array_num_value(23) := p_source_26;
26303 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
26304 l_rec_acct_attrs.array_char_value(24) := p_source_27;
26305 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
26306 l_rec_acct_attrs.array_num_value(25) := p_source_28;
26307 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
26308 l_rec_acct_attrs.array_char_value(26) := p_source_31;
26309 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
26310 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
26311 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
26312 l_rec_acct_attrs.array_char_value(28) := p_source_22;
26313 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
26314 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
26315 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
26316 l_rec_acct_attrs.array_num_value(30) := p_source_32;
26317 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
26318 l_rec_acct_attrs.array_num_value(31) := p_source_32;
26319
26320 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26321 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26322
26323 ---------------------------------------------------------------------------------------------------------------
26324 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26325 ---------------------------------------------------------------------------------------------------------------
26326 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26327
26328 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26329 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26330
26331 IF xla_accounting_cache_pkg.GetValueChar
26332 (p_source_code => 'LEDGER_CATEGORY_CODE'
26333 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26334 AND l_bflow_method_code = 'PRIOR_ENTRY'
26335 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26336 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26337 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26338 )
26339 THEN
26340 xla_ae_lines_pkg.BflowUpgEntry
26341 (p_business_method_code => l_bflow_method_code
26342 ,p_business_class_code => l_bflow_class_code
26343 ,p_balance_type => l_balance_type_code);
26344 ELSE
26345 NULL;
26346 XLA_AE_LINES_PKG.business_flow_validation(
26347 p_business_method_code => l_bflow_method_code
26348 ,p_business_class_code => l_bflow_class_code
26349 ,p_inherit_description_flag => l_inherit_desc_flag);
26350 END IF;
26351
26352 --
26353 -- call analytical criteria
26354 --
26355 -- Inherited Analytical Criteria for business flow method of Prior Entry.
26356 --
26357 -- call description
26358 --
26359 -- No description or it is inherited.
26360 --
26361 -- call ADRs
26362 -- Bug 4922099
26363 --
26364 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26365 (NVL(l_actual_upg_option, 'N') = 'O') OR
26366 (NVL(l_enc_upg_option, 'N') = 'O')
26367 )
26368 THEN
26369 NULL;
26370 --
26371 --
26372
26373 --
26374 --
26375 END IF;
26376 --
26377 -- Bug 4922099
26378 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26379 (NVL(l_enc_upg_option, 'N') = 'O')
26380 ) AND
26381 (l_bflow_method_code = 'PRIOR_ENTRY')
26382 )
26383 THEN
26384 IF
26385 --
26386 1 = 1
26387 --
26388 THEN
26389 xla_accounting_err_pkg.build_message
26390 (p_appli_s_name => 'XLA'
26391 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26392 ,p_token_1 => 'LINE_NUMBER'
26393 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26394 ,p_token_2 => 'LINE_TYPE_NAME'
26395 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26396 l_component_type
26397 ,l_component_code
26398 ,l_component_type_code
26399 ,l_component_appl_id
26400 ,l_amb_context_code
26401 ,l_entity_code
26402 ,l_event_class_code
26403 )
26404 ,p_token_3 => 'OWNER'
26405 ,p_value_3 => xla_lookups_pkg.get_meaning(
26406 p_lookup_type => 'XLA_OWNER_TYPE'
26407 ,p_lookup_code => l_component_type_code
26408 )
26409 ,p_token_4 => 'PRODUCT_NAME'
26410 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26411 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26412 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26413 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26414 ,p_ae_header_id => NULL
26415 );
26416
26417 IF (C_LEVEL_ERROR>= g_log_level) THEN
26418 trace
26419 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26420 ,p_level => C_LEVEL_ERROR
26421 ,p_module => l_log_module);
26422 END IF;
26423 END IF;
26424 END IF;
26425 --
26426 --
26427 ------------------------------------------------------------------------------------------------
26428 -- 4219869 Business Flow
26429 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26430 -- Prior Entry. Currently, the following code is always generated.
26431 ------------------------------------------------------------------------------------------------
26432 -- No ValidateCurrentLine for business flow method of Prior Entry
26433
26434 ------------------------------------------------------------------------------------
26435 -- 4219869 Business Flow
26436 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26437 ------------------------------------------------------------------------------------
26438 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26439
26440 ----------------------------------------------------------------------------------
26441 -- 4219869 Business Flow
26442 -- Update journal entry status -- Need to generate this within IF <condition>
26443 ----------------------------------------------------------------------------------
26444 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26445 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26446 ,p_balance_type_code => l_balance_type_code
26447 );
26448
26449 -------------------------------------------------------------------------------------------
26450 -- 4262811 - Generate the Accrual Reversal lines
26451 -------------------------------------------------------------------------------------------
26452 BEGIN
26453 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26454 (g_array_event(p_event_id).array_value_num('header_index'));
26455 IF l_acc_rev_flag IS NULL THEN
26456 l_acc_rev_flag := 'N';
26457 END IF;
26458 EXCEPTION
26459 WHEN OTHERS THEN
26460 l_acc_rev_flag := 'N';
26461 END;
26462 --
26463 IF (l_acc_rev_flag = 'Y') THEN
26464
26465 -- 4645092 ------------------------------------------------------------------------------
26466 -- To allow MPA report to determine if it should generate report process
26467 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26468 ------------------------------------------------------------------------------------------
26469
26470 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26471 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26472
26473 --
26474 -- Update the line information that should be overwritten
26475 --
26476 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26477 p_header_num => 1);
26478 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26479
26480 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26481
26482 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26483 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26484 END IF;
26485
26486 --
26487 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26488 --
26489 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26490 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26491 ELSE
26492 ---------------------------------------------------------------------------------------------------
26493 -- 4262811a Switch Sign
26494 ---------------------------------------------------------------------------------------------------
26495 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26496 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26497 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26498 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26499 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26500 -- 5132302
26501 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26502 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26503
26504 END IF;
26505
26506 -- 4955764
26507 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26508 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26509
26510
26511 XLA_AE_LINES_PKG.ValidateCurrentLine;
26512 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26513
26514 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26515 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26516 ,p_balance_type_code => l_balance_type_code);
26517
26518 END IF;
26519
26520 -----------------------------------------------------------------------------------------
26521 -- 4262811 Multiperiod Accounting
26522 -----------------------------------------------------------------------------------------
26523 -- No MPA option is assigned.
26524
26525
26526 END IF;
26527 END IF;
26528 --
26529
26530 --
26531 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26532 trace
26533 (p_msg => 'END of AcctLineType_52'
26534 ,p_level => C_LEVEL_PROCEDURE
26535 ,p_module => l_log_module);
26536 END IF;
26537 --
26538 EXCEPTION
26539 WHEN xla_exceptions_pkg.application_exception THEN
26540 RAISE;
26541 WHEN OTHERS THEN
26542 xla_exceptions_pkg.raise_message
26543 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_52');
26544 END AcctLineType_52;
26545 --
26546
26547 ---------------------------------------
26548 --
26549 -- PRIVATE FUNCTION
26550 -- AcctLineType_53
26551 --
26552 ---------------------------------------
26553 PROCEDURE AcctLineType_53 (
26554 p_application_id IN NUMBER
26555 ,p_event_id IN NUMBER
26556 ,p_calculate_acctd_flag IN VARCHAR2
26557 ,p_calculate_g_l_flag IN VARCHAR2
26558 ,p_actual_flag IN OUT VARCHAR2
26559 ,p_balance_type_code OUT VARCHAR2
26560 ,p_gain_or_loss_ref OUT VARCHAR2
26561
26562 --Journal entry Line Description
26563 , p_source_3 IN VARCHAR2
26564 --Federal Fund Expired Status
26565 , p_source_8 IN VARCHAR2
26566 --Budget Account
26567 , p_source_9 IN NUMBER
26568 --Federal Prior Year Flag
26569 , p_source_10 IN VARCHAR2
26570 --Main Or Backing Code
26571 , p_source_13 IN VARCHAR2
26572 --Accounting Reversal Flag
26573 , p_source_15 IN VARCHAR2
26574 --Distribution Link Type
26575 , p_source_17 IN VARCHAR2
26576 --PO Distribution Identifier
26577 , p_source_19 IN NUMBER
26578 --Applied To Application Identifier
26579 , p_source_21 IN NUMBER
26580 --Applied To Distribution Link Type
26581 , p_source_22 IN VARCHAR2
26582 --Applied To Entity Code
26583 , p_source_23 IN VARCHAR2
26584 --Applied To Distribution Identifier 1
26585 , p_source_24 IN NUMBER
26586 --Applied To Header Identifier 1
26587 , p_source_25 IN NUMBER
26588 --Entered Amount
26589 , p_source_26 IN NUMBER
26590 --Currency Code
26591 , p_source_27 IN VARCHAR2
26592 --Accounted Amount
26593 , p_source_28 IN NUMBER
26597 , p_source_32 IN NUMBER
26594 --PO Encumbrance Upgrade Option
26595 , p_source_29 IN VARCHAR2
26596 --PO Upgrade Encumbrance Type Identifier
26598 --Currency Conversion Date
26599 , p_source_35 IN DATE
26600 --Currency Conversion Rate
26601 , p_source_36 IN NUMBER
26602 --Currency Conversion Type
26603 , p_source_37 IN VARCHAR2
26604 --PO Release Identifier
26605 , p_source_41 IN NUMBER
26606 )
26607 IS
26608
26609 l_component_type VARCHAR2(80);
26610 l_component_code VARCHAR2(30);
26611 l_component_type_code VARCHAR2(1);
26612 l_component_appl_id INTEGER;
26613 l_amb_context_code VARCHAR2(30);
26614 l_entity_code VARCHAR2(30);
26615 l_event_class_code VARCHAR2(30);
26616 l_ae_header_id NUMBER;
26617 l_event_type_code VARCHAR2(30);
26618 l_line_definition_code VARCHAR2(30);
26619 l_line_definition_owner_code VARCHAR2(1);
26620 --
26621 -- adr variables
26622 l_segment VARCHAR2(30);
26623 l_ccid NUMBER;
26624 l_adr_transaction_coa_id NUMBER;
26625 l_adr_accounting_coa_id NUMBER;
26626 l_adr_flexfield_segment_code VARCHAR2(30);
26627 l_adr_flex_value_set_id NUMBER;
26628 l_adr_value_type_code VARCHAR2(30);
26629 l_adr_value_combination_id NUMBER;
26630 l_adr_value_segment_code VARCHAR2(30);
26631
26632 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26633 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26634 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26635 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26636
26637 -- 4262811 Variables ------------------------------------------------------------------------------------------
26638 l_entered_amt_idx NUMBER;
26639 l_accted_amt_idx NUMBER;
26640 l_acc_rev_flag VARCHAR2(1);
26641 l_accrual_line_num NUMBER;
26642 l_tmp_amt NUMBER;
26643 l_acc_rev_natural_side_code VARCHAR2(1);
26644
26645 l_num_entries NUMBER;
26646 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26647 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26648 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26649 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26650 l_recog_line_1 NUMBER;
26651 l_recog_line_2 NUMBER;
26652
26653 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26654 l_bflow_applied_to_amt NUMBER; -- 5132302
26655 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26656
26657 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26658
26659 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26660 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26661
26662 ---------------------------------------------------------------------------------------------------------------
26663
26664
26665 --
26666 -- bulk performance
26667 --
26668 l_balance_type_code VARCHAR2(1);
26669 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26670 l_log_module VARCHAR2(240);
26671
26672 --
26673 -- Upgrade strategy
26674 --
26675 l_actual_upg_option VARCHAR2(1);
26676 l_enc_upg_option VARCHAR2(1);
26677
26678 --
26679 BEGIN
26680 --
26681 IF g_log_enabled THEN
26682 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
26683 END IF;
26684 --
26685 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26686
26687 trace
26688 (p_msg => 'BEGIN of AcctLineType_53'
26689 ,p_level => C_LEVEL_PROCEDURE
26690 ,p_module => l_log_module);
26691
26692 END IF;
26693 --
26694 l_component_type := 'AMB_JLT';
26695 l_component_code := 'FV_REL_PYA_CANCEL_CR';
26696 l_component_type_code := 'S';
26697 l_component_appl_id := 201;
26698 l_amb_context_code := 'DEFAULT';
26699 l_entity_code := 'RELEASE';
26700 l_event_class_code := 'RELEASE';
26701 l_event_type_code := 'RELEASE_ALL';
26702 l_line_definition_owner_code := 'S';
26703 l_line_definition_code := 'FV_RELEASE_ALL';
26704 --
26705 l_balance_type_code := 'A';
26706 l_segment := NULL;
26707 l_ccid := NULL;
26708 l_adr_transaction_coa_id := NULL;
26709 l_adr_accounting_coa_id := NULL;
26710 l_adr_flexfield_segment_code := NULL;
26711 l_adr_flex_value_set_id := NULL;
26712 l_adr_value_type_code := NULL;
26713 l_adr_value_combination_id := NULL;
26714 l_adr_value_segment_code := NULL;
26715
26716 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26717 l_bflow_class_code := ''; -- 4219869 Business Flow
26718 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26719 l_budgetary_control_flag := 'Y';
26720
26721 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26722 l_bflow_applied_to_amt := NULL; -- 5132302
26723 l_entered_amt_idx := NULL; -- 4262811
26727 l_tmp_amt := NULL; -- 4262811
26724 l_accted_amt_idx := NULL; -- 4262811
26725 l_acc_rev_flag := NULL; -- 4262811
26726 l_accrual_line_num := NULL; -- 4262811
26728 --
26729
26730 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26731 l_balance_type_code <> 'B' THEN
26732 IF NVL(
26733 xla_ae_sources_pkg.GetSystemSourceChar(
26734 p_source_code => 'XLA_EVENT_TYPE_CODE'
26735 , p_source_type_code => 'Y'
26736 , p_source_application_id => 602
26737 ),'
26738 ') = 'RELEASE_CANCELLED' AND
26739 NVL(p_source_13,'
26740 ') = 'M' AND
26741 NVL(p_source_10,'
26742 ') = 'Y'
26743 THEN
26744
26745 --
26746 XLA_AE_LINES_PKG.SetNewLine;
26747
26748 p_balance_type_code := l_balance_type_code;
26749 -- set the flag so later we will know whether the gain loss line needs to be created
26750
26751 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26752 p_actual_flag :='A';
26753 END IF;
26754
26755 --
26756 -- bulk performance
26757 --
26758 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26759 p_header_num => 0); -- 4262811
26760 --
26761 -- set accounting line options
26762 --
26763 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26764 p_natural_side_code => 'C'
26765 , p_gain_or_loss_flag => 'N'
26766 , p_gl_transfer_mode_code => 'S'
26767 , p_acct_entry_type_code => 'A'
26768 , p_switch_side_flag => 'N'
26769 , p_merge_duplicate_code => 'N'
26770 );
26771 --
26772 l_acc_rev_natural_side_code := 'D'; -- 4262811
26773 --
26774 --
26775 -- set accounting line type info
26776 --
26777 xla_ae_lines_pkg.SetAcctLineType
26778 (p_component_type => l_component_type
26779 ,p_event_type_code => l_event_type_code
26780 ,p_line_definition_owner_code => l_line_definition_owner_code
26781 ,p_line_definition_code => l_line_definition_code
26782 ,p_accounting_line_code => l_component_code
26783 ,p_accounting_line_type_code => l_component_type_code
26784 ,p_accounting_line_appl_id => l_component_appl_id
26785 ,p_amb_context_code => l_amb_context_code
26786 ,p_entity_code => l_entity_code
26787 ,p_event_class_code => l_event_class_code);
26788 --
26789 -- set accounting class
26790 --
26791 xla_ae_lines_pkg.SetAcctClass(
26792 p_accounting_class_code => 'PURCHASE_ORDER'
26793 , p_ae_header_id => l_ae_header_id
26794 );
26795
26796 --
26797 -- set rounding class
26798 --
26799 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26800 'PURCHASE_ORDER';
26801
26802 --
26803 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26804 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26805 --
26806 -- bulk performance
26807 --
26808 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26809
26810 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26811 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26812
26813 -- 4955764
26814 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26815 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26816
26817 -- 4458381 Public Sector Enh
26818
26819 --
26820 -- set accounting attributes for the line type
26821 --
26822 l_entered_amt_idx := 23;
26823 l_accted_amt_idx := 28;
26824 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26825 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26826 l_rec_acct_attrs.array_char_value(1) := p_source_15;
26827 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
26828 l_rec_acct_attrs.array_num_value(2) :=
26829 xla_ae_sources_pkg.GetSystemSourceNum(
26830 p_source_code => 'XLA_EVENT_APPL_ID'
26831 , p_source_type_code => 'Y'
26832 , p_source_application_id => 602
26833 );
26834 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
26835 l_rec_acct_attrs.array_char_value(3) := p_source_17;
26836 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
26837 l_rec_acct_attrs.array_char_value(4) :=
26838 xla_ae_sources_pkg.GetSystemSourceChar(
26839 p_source_code => 'XLA_ENTITY_CODE'
26840 , p_source_type_code => 'Y'
26841 , p_source_application_id => 602
26842 );
26843 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
26844 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
26845 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
26846 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
26847 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
26848 l_rec_acct_attrs.array_num_value(7) := p_source_21;
26849 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26850 l_rec_acct_attrs.array_char_value(8) := p_source_22;
26851 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
26852 l_rec_acct_attrs.array_char_value(9) := p_source_23;
26853 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
26854 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
26855 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26856 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
26857 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
26858 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
26859 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
26860 l_rec_acct_attrs.array_char_value(13) := p_source_17;
26861 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
26862 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
26863 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
26864 l_rec_acct_attrs.array_num_value(15) := p_source_26;
26865 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
26866 l_rec_acct_attrs.array_char_value(16) := p_source_27;
26867 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
26868 l_rec_acct_attrs.array_num_value(17) := p_source_28;
26869 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
26870 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
26871 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
26872 l_rec_acct_attrs.array_num_value(19) := p_source_26;
26873 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
26874 l_rec_acct_attrs.array_char_value(20) := p_source_27;
26875 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
26876 l_rec_acct_attrs.array_num_value(21) := p_source_28;
26877 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
26878 l_rec_acct_attrs.array_char_value(22) := p_source_29;
26879 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
26880 l_rec_acct_attrs.array_num_value(23) := p_source_26;
26881 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
26882 l_rec_acct_attrs.array_char_value(24) := p_source_27;
26883 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
26884 l_rec_acct_attrs.array_date_value(25) := p_source_35;
26885 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
26886 l_rec_acct_attrs.array_num_value(26) := p_source_36;
26887 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
26888 l_rec_acct_attrs.array_char_value(27) := p_source_37;
26889 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
26890 l_rec_acct_attrs.array_num_value(28) := p_source_28;
26891 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
26892 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
26893 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
26894 l_rec_acct_attrs.array_char_value(30) := p_source_22;
26895 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
26896 l_rec_acct_attrs.array_num_value(31) := p_source_32;
26897 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
26898 l_rec_acct_attrs.array_num_value(32) := p_source_32;
26899
26900 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26901 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26902
26903 ---------------------------------------------------------------------------------------------------------------
26904 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26905 ---------------------------------------------------------------------------------------------------------------
26906 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26907
26908 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26909 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26910
26911 IF xla_accounting_cache_pkg.GetValueChar
26912 (p_source_code => 'LEDGER_CATEGORY_CODE'
26913 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26914 AND l_bflow_method_code = 'PRIOR_ENTRY'
26915 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26916 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26917 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26918 )
26919 THEN
26920 xla_ae_lines_pkg.BflowUpgEntry
26921 (p_business_method_code => l_bflow_method_code
26922 ,p_business_class_code => l_bflow_class_code
26923 ,p_balance_type => l_balance_type_code);
26924 ELSE
26925 NULL;
26926 -- No business flow processing for business flow method of NONE.
26927 END IF;
26928
26929 --
26930 -- call analytical criteria
26931 --
26932
26933 --
26934 -- call description
26935 --
26936
26937 xla_ae_lines_pkg.SetLineDescription(
26938 p_ae_header_id => l_ae_header_id
26939 ,p_description => Description_2 (
26940 p_application_id => p_application_id
26941 , p_ae_header_id => l_ae_header_id
26942 , p_source_3 => p_source_3
26943 )
26944 );
26945
26946
26947 --
26948 -- call ADRs
26949 -- Bug 4922099
26950 --
26951 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26952 (NVL(l_actual_upg_option, 'N') = 'O') OR
26953 (NVL(l_enc_upg_option, 'N') = 'O')
26954 )
26955 THEN
26956 NULL;
26957 --
26958 --
26959
26960 l_ccid := AcctDerRule_9(
26961 p_application_id => p_application_id
26962 , p_ae_header_id => l_ae_header_id
26963 , p_source_9 => p_source_9
26964 , x_transaction_coa_id => l_adr_transaction_coa_id
26965 , x_accounting_coa_id => l_adr_accounting_coa_id
26966 , x_value_type_code => l_adr_value_type_code
26967 , p_side => 'NA'
26968 );
26969
26970 xla_ae_lines_pkg.set_ccid(
26971 p_code_combination_id => l_ccid
26972 , p_value_type_code => l_adr_value_type_code
26973 , p_transaction_coa_id => l_adr_transaction_coa_id
26974 , p_accounting_coa_id => l_adr_accounting_coa_id
26975 , p_adr_code => 'FV_ACCOUNT_RULE'
26976 , p_adr_type_code => 'S'
26977 , p_component_type => l_component_type
26978 , p_component_code => l_component_code
26979 , p_component_type_code => l_component_type_code
26980 , p_component_appl_id => l_component_appl_id
26981 , p_amb_context_code => l_amb_context_code
26982 , p_side => 'NA'
26983 );
26984
26985
26986 l_segment := AcctDerRule_11(
26987 p_application_id => p_application_id
26988 , p_ae_header_id => l_ae_header_id
26989 , p_source_8 => p_source_8
26990 , x_transaction_coa_id => l_adr_transaction_coa_id
26991 , x_accounting_coa_id => l_adr_accounting_coa_id
26992 , x_flexfield_segment_code => l_adr_flexfield_segment_code
26993 , x_flex_value_set_id => l_adr_flex_value_set_id
26994 , x_value_type_code => l_adr_value_type_code
26995 , x_value_combination_id => l_adr_value_combination_id
26996 , x_value_segment_code => l_adr_value_segment_code
26997 , p_side => 'NA'
26998 , p_override_seg_flag => 'Y'
26999 );
27000
27001 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
27002
27003 xla_ae_lines_pkg.set_segment(
27004 p_to_segment_code => 'GL_ACCOUNT'
27005 , p_segment_value => l_segment
27006 , p_from_segment_code => l_adr_value_segment_code
27007 , p_from_combination_id => l_adr_value_combination_id
27008 , p_value_type_code => l_adr_value_type_code
27009 , p_transaction_coa_id => l_adr_transaction_coa_id
27010 , p_accounting_coa_id => l_adr_accounting_coa_id
27011 , p_flexfield_segment_code => l_adr_flexfield_segment_code
27012 , p_flex_value_set_id => l_adr_flex_value_set_id
27013 , p_adr_code => 'FV_PYA_445002_UNANTICIPATED'
27014 , p_adr_type_code => 'S'
27015 , p_component_type => l_component_type
27016 , p_component_code => l_component_code
27017 , p_component_type_code => l_component_type_code
27018 , p_component_appl_id => l_component_appl_id
27019 , p_amb_context_code => l_amb_context_code
27020 , p_entity_code => 'RELEASE'
27021 , p_event_class_code => 'RELEASE'
27022 , p_side => 'NA'
27023 );
27024
27025 END IF;
27026
27027 --
27028 --
27029 END IF;
27030 --
27031 -- Bug 4922099
27032 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27033 (NVL(l_enc_upg_option, 'N') = 'O')
27034 ) AND
27035 (l_bflow_method_code = 'PRIOR_ENTRY')
27036 )
27037 THEN
27038 IF
27039 --
27040 1 = 2
27041 --
27042 THEN
27043 xla_accounting_err_pkg.build_message
27044 (p_appli_s_name => 'XLA'
27045 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27046 ,p_token_1 => 'LINE_NUMBER'
27047 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27048 ,p_token_2 => 'LINE_TYPE_NAME'
27049 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27050 l_component_type
27051 ,l_component_code
27052 ,l_component_type_code
27053 ,l_component_appl_id
27054 ,l_amb_context_code
27055 ,l_entity_code
27056 ,l_event_class_code
27057 )
27058 ,p_token_3 => 'OWNER'
27059 ,p_value_3 => xla_lookups_pkg.get_meaning(
27060 p_lookup_type => 'XLA_OWNER_TYPE'
27061 ,p_lookup_code => l_component_type_code
27062 )
27063 ,p_token_4 => 'PRODUCT_NAME'
27064 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27065 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27066 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27067 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27068 ,p_ae_header_id => NULL
27069 );
27070
27071 IF (C_LEVEL_ERROR>= g_log_level) THEN
27072 trace
27073 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27074 ,p_level => C_LEVEL_ERROR
27075 ,p_module => l_log_module);
27076 END IF;
27077 END IF;
27078 END IF;
27079 --
27080 --
27081 ------------------------------------------------------------------------------------------------
27082 -- 4219869 Business Flow
27083 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27084 -- Prior Entry. Currently, the following code is always generated.
27085 ------------------------------------------------------------------------------------------------
27086 XLA_AE_LINES_PKG.ValidateCurrentLine;
27087
27088 ------------------------------------------------------------------------------------
27089 -- 4219869 Business Flow
27090 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27091 ------------------------------------------------------------------------------------
27092 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27093
27094 ----------------------------------------------------------------------------------
27095 -- 4219869 Business Flow
27096 -- Update journal entry status -- Need to generate this within IF <condition>
27097 ----------------------------------------------------------------------------------
27098 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27099 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27100 ,p_balance_type_code => l_balance_type_code
27101 );
27102
27103 -------------------------------------------------------------------------------------------
27104 -- 4262811 - Generate the Accrual Reversal lines
27105 -------------------------------------------------------------------------------------------
27106 BEGIN
27107 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27108 (g_array_event(p_event_id).array_value_num('header_index'));
27109 IF l_acc_rev_flag IS NULL THEN
27110 l_acc_rev_flag := 'N';
27111 END IF;
27112 EXCEPTION
27113 WHEN OTHERS THEN
27114 l_acc_rev_flag := 'N';
27115 END;
27116 --
27117 IF (l_acc_rev_flag = 'Y') THEN
27118
27119 -- 4645092 ------------------------------------------------------------------------------
27120 -- To allow MPA report to determine if it should generate report process
27121 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27122 ------------------------------------------------------------------------------------------
27123
27124 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27125 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27126
27127 --
27128 -- Update the line information that should be overwritten
27129 --
27130 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27131 p_header_num => 1);
27132 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27133
27134 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27135
27136 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27137 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27138 END IF;
27139
27140 --
27141 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27142 --
27143 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27144 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27145 ELSE
27146 ---------------------------------------------------------------------------------------------------
27147 -- 4262811a Switch Sign
27148 ---------------------------------------------------------------------------------------------------
27149 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27150 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27151 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27152 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27153 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27154 -- 5132302
27155 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27156 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27157
27158 END IF;
27159
27160 -- 4955764
27161 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27162 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27163
27164
27165 XLA_AE_LINES_PKG.ValidateCurrentLine;
27166 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27167
27168 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27169 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27170 ,p_balance_type_code => l_balance_type_code);
27171
27172 END IF;
27173
27174 -----------------------------------------------------------------------------------------
27175 -- 4262811 Multiperiod Accounting
27176 -----------------------------------------------------------------------------------------
27177 -- No MPA option is assigned.
27178
27179
27180 END IF;
27181 END IF;
27182 --
27183
27184 --
27185 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27186 trace
27187 (p_msg => 'END of AcctLineType_53'
27188 ,p_level => C_LEVEL_PROCEDURE
27189 ,p_module => l_log_module);
27190 END IF;
27191 --
27192 EXCEPTION
27193 WHEN xla_exceptions_pkg.application_exception THEN
27194 RAISE;
27195 WHEN OTHERS THEN
27196 xla_exceptions_pkg.raise_message
27197 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_53');
27198 END AcctLineType_53;
27199 --
27200
27201 ---------------------------------------
27202 --
27203 -- PRIVATE FUNCTION
27204 -- AcctLineType_54
27205 --
27206 ---------------------------------------
27207 PROCEDURE AcctLineType_54 (
27208 p_application_id IN NUMBER
27209 ,p_event_id IN NUMBER
27210 ,p_calculate_acctd_flag IN VARCHAR2
27211 ,p_calculate_g_l_flag IN VARCHAR2
27212 ,p_actual_flag IN OUT VARCHAR2
27213 ,p_balance_type_code OUT VARCHAR2
27214 ,p_gain_or_loss_ref OUT VARCHAR2
27218 --Budget Account
27215
27216 --Journal entry Line Description
27217 , p_source_3 IN VARCHAR2
27219 , p_source_9 IN NUMBER
27220 --Federal Prior Year Flag
27221 , p_source_10 IN VARCHAR2
27222 --Federal Net Pya Adj Amt
27223 , p_source_11 IN NUMBER
27224 --Main Or Backing Code
27225 , p_source_13 IN VARCHAR2
27226 --Accounting Reversal Flag
27227 , p_source_15 IN VARCHAR2
27228 --Distribution Link Type
27229 , p_source_17 IN VARCHAR2
27230 --PO Distribution Identifier
27231 , p_source_19 IN NUMBER
27232 --Applied To Application Identifier
27233 , p_source_21 IN NUMBER
27234 --Applied To Distribution Link Type
27235 , p_source_22 IN VARCHAR2
27236 --Applied To Entity Code
27237 , p_source_23 IN VARCHAR2
27238 --Applied To Distribution Identifier 1
27239 , p_source_24 IN NUMBER
27240 --Applied To Header Identifier 1
27241 , p_source_25 IN NUMBER
27242 --Entered Amount
27243 , p_source_26 IN NUMBER
27244 --Currency Code
27245 , p_source_27 IN VARCHAR2
27246 --Accounted Amount
27247 , p_source_28 IN NUMBER
27248 --PO Encumbrance Upgrade Option
27249 , p_source_29 IN VARCHAR2
27250 --PO Upgrade Encumbrance Type Identifier
27251 , p_source_32 IN NUMBER
27252 --Currency Conversion Date
27253 , p_source_35 IN DATE
27254 --Currency Conversion Rate
27255 , p_source_36 IN NUMBER
27256 --Currency Conversion Type
27257 , p_source_37 IN VARCHAR2
27258 --Federal Pya Differential Amt
27259 , p_source_38 IN NUMBER
27260 --PO Release Identifier
27261 , p_source_41 IN NUMBER
27262 )
27263 IS
27264
27265 l_component_type VARCHAR2(80);
27266 l_component_code VARCHAR2(30);
27267 l_component_type_code VARCHAR2(1);
27268 l_component_appl_id INTEGER;
27269 l_amb_context_code VARCHAR2(30);
27270 l_entity_code VARCHAR2(30);
27271 l_event_class_code VARCHAR2(30);
27272 l_ae_header_id NUMBER;
27273 l_event_type_code VARCHAR2(30);
27274 l_line_definition_code VARCHAR2(30);
27275 l_line_definition_owner_code VARCHAR2(1);
27276 --
27277 -- adr variables
27278 l_segment VARCHAR2(30);
27279 l_ccid NUMBER;
27280 l_adr_transaction_coa_id NUMBER;
27281 l_adr_accounting_coa_id NUMBER;
27282 l_adr_flexfield_segment_code VARCHAR2(30);
27283 l_adr_flex_value_set_id NUMBER;
27284 l_adr_value_type_code VARCHAR2(30);
27285 l_adr_value_combination_id NUMBER;
27286 l_adr_value_segment_code VARCHAR2(30);
27287
27288 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27289 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27290 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27291 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27292
27293 -- 4262811 Variables ------------------------------------------------------------------------------------------
27294 l_entered_amt_idx NUMBER;
27295 l_accted_amt_idx NUMBER;
27296 l_acc_rev_flag VARCHAR2(1);
27297 l_accrual_line_num NUMBER;
27298 l_tmp_amt NUMBER;
27299 l_acc_rev_natural_side_code VARCHAR2(1);
27300
27301 l_num_entries NUMBER;
27302 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27303 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27304 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27305 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27306 l_recog_line_1 NUMBER;
27307 l_recog_line_2 NUMBER;
27308
27309 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27310 l_bflow_applied_to_amt NUMBER; -- 5132302
27311 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27312
27313 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27314
27315 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27316 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27317
27318 ---------------------------------------------------------------------------------------------------------------
27319
27320
27321 --
27322 -- bulk performance
27323 --
27324 l_balance_type_code VARCHAR2(1);
27325 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27326 l_log_module VARCHAR2(240);
27327
27328 --
27329 -- Upgrade strategy
27330 --
27331 l_actual_upg_option VARCHAR2(1);
27332 l_enc_upg_option VARCHAR2(1);
27333
27334 --
27335 BEGIN
27336 --
27337 IF g_log_enabled THEN
27338 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
27339 END IF;
27340 --
27341 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27342
27343 trace
27344 (p_msg => 'BEGIN of AcctLineType_54'
27345 ,p_level => C_LEVEL_PROCEDURE
27346 ,p_module => l_log_module);
27347
27348 END IF;
27349 --
27350 l_component_type := 'AMB_JLT';
27351 l_component_code := 'FV_REL_PYA_DIFF_RESERVE_CR';
27352 l_component_type_code := 'S';
27353 l_component_appl_id := 201;
27354 l_amb_context_code := 'DEFAULT';
27355 l_entity_code := 'RELEASE';
27356 l_event_class_code := 'RELEASE';
27357 l_event_type_code := 'RELEASE_ALL';
27358 l_line_definition_owner_code := 'S';
27359 l_line_definition_code := 'FV_RELEASE_ALL';
27360 --
27361 l_balance_type_code := 'A';
27362 l_segment := NULL;
27363 l_ccid := NULL;
27364 l_adr_transaction_coa_id := NULL;
27365 l_adr_accounting_coa_id := NULL;
27366 l_adr_flexfield_segment_code := NULL;
27367 l_adr_flex_value_set_id := NULL;
27368 l_adr_value_type_code := NULL;
27369 l_adr_value_combination_id := NULL;
27370 l_adr_value_segment_code := NULL;
27371
27372 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27373 l_bflow_class_code := ''; -- 4219869 Business Flow
27374 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27375 l_budgetary_control_flag := 'Y';
27376
27377 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27378 l_bflow_applied_to_amt := NULL; -- 5132302
27379 l_entered_amt_idx := NULL; -- 4262811
27380 l_accted_amt_idx := NULL; -- 4262811
27381 l_acc_rev_flag := NULL; -- 4262811
27382 l_accrual_line_num := NULL; -- 4262811
27383 l_tmp_amt := NULL; -- 4262811
27384 --
27385
27386 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27387 l_balance_type_code <> 'B' THEN
27388 IF NVL(
27389 xla_ae_sources_pkg.GetSystemSourceChar(
27390 p_source_code => 'XLA_EVENT_TYPE_CODE'
27391 , p_source_type_code => 'Y'
27392 , p_source_application_id => 602
27393 ),'
27394 ') = 'RELEASE_RESERVED' AND
27395 NVL(p_source_13,'
27396 ') = 'M' AND
27397 NVL(p_source_10,'
27398 ') = 'Y' AND
27399 p_source_11 > 0
27400 THEN
27401
27402 --
27403 XLA_AE_LINES_PKG.SetNewLine;
27404
27405 p_balance_type_code := l_balance_type_code;
27406 -- set the flag so later we will know whether the gain loss line needs to be created
27407
27408 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27409 p_actual_flag :='A';
27410 END IF;
27411
27412 --
27413 -- bulk performance
27414 --
27415 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27416 p_header_num => 0); -- 4262811
27417 --
27418 -- set accounting line options
27419 --
27420 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27421 p_natural_side_code => 'C'
27422 , p_gain_or_loss_flag => 'N'
27423 , p_gl_transfer_mode_code => 'S'
27424 , p_acct_entry_type_code => 'A'
27425 , p_switch_side_flag => 'Y'
27426 , p_merge_duplicate_code => 'N'
27427 );
27428 --
27429 l_acc_rev_natural_side_code := 'D'; -- 4262811
27430 --
27431 --
27432 -- set accounting line type info
27433 --
27434 xla_ae_lines_pkg.SetAcctLineType
27435 (p_component_type => l_component_type
27436 ,p_event_type_code => l_event_type_code
27437 ,p_line_definition_owner_code => l_line_definition_owner_code
27438 ,p_line_definition_code => l_line_definition_code
27439 ,p_accounting_line_code => l_component_code
27440 ,p_accounting_line_type_code => l_component_type_code
27441 ,p_accounting_line_appl_id => l_component_appl_id
27442 ,p_amb_context_code => l_amb_context_code
27443 ,p_entity_code => l_entity_code
27444 ,p_event_class_code => l_event_class_code);
27445 --
27446 -- set accounting class
27447 --
27448 xla_ae_lines_pkg.SetAcctClass(
27449 p_accounting_class_code => 'PURCHASE_ORDER'
27450 , p_ae_header_id => l_ae_header_id
27451 );
27452
27453 --
27454 -- set rounding class
27455 --
27456 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27457 'PURCHASE_ORDER';
27458
27459 --
27460 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27461 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27462 --
27463 -- bulk performance
27464 --
27465 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27466
27467 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27468 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27469
27470 -- 4955764
27471 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27472 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27473
27474 -- 4458381 Public Sector Enh
27475
27476 --
27477 -- set accounting attributes for the line type
27478 --
27479 l_entered_amt_idx := 23;
27480 l_accted_amt_idx := 28;
27481 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27482 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27483 l_rec_acct_attrs.array_char_value(1) := p_source_15;
27484 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
27485 l_rec_acct_attrs.array_num_value(2) :=
27486 xla_ae_sources_pkg.GetSystemSourceNum(
27487 p_source_code => 'XLA_EVENT_APPL_ID'
27488 , p_source_type_code => 'Y'
27489 , p_source_application_id => 602
27490 );
27491 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
27492 l_rec_acct_attrs.array_char_value(3) := p_source_17;
27493 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
27494 l_rec_acct_attrs.array_char_value(4) :=
27495 xla_ae_sources_pkg.GetSystemSourceChar(
27496 p_source_code => 'XLA_ENTITY_CODE'
27497 , p_source_type_code => 'Y'
27498 , p_source_application_id => 602
27499 );
27500 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
27501 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
27502 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
27503 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
27504 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
27505 l_rec_acct_attrs.array_num_value(7) := p_source_21;
27506 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27507 l_rec_acct_attrs.array_char_value(8) := p_source_22;
27508 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
27509 l_rec_acct_attrs.array_char_value(9) := p_source_23;
27510 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
27511 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
27512 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27513 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
27514 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
27515 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
27516 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
27517 l_rec_acct_attrs.array_char_value(13) := p_source_17;
27518 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
27519 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
27520 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
27521 l_rec_acct_attrs.array_num_value(15) := p_source_26;
27522 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
27523 l_rec_acct_attrs.array_char_value(16) := p_source_27;
27524 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
27525 l_rec_acct_attrs.array_num_value(17) := p_source_28;
27526 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
27527 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
27528 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
27532 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
27529 l_rec_acct_attrs.array_num_value(19) := p_source_26;
27530 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
27531 l_rec_acct_attrs.array_char_value(20) := p_source_27;
27533 l_rec_acct_attrs.array_num_value(21) := p_source_28;
27534 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
27535 l_rec_acct_attrs.array_char_value(22) := p_source_29;
27536 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
27537 l_rec_acct_attrs.array_num_value(23) := p_source_38;
27538 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
27539 l_rec_acct_attrs.array_char_value(24) := p_source_27;
27540 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
27541 l_rec_acct_attrs.array_date_value(25) := p_source_35;
27542 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
27543 l_rec_acct_attrs.array_num_value(26) := p_source_36;
27544 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
27545 l_rec_acct_attrs.array_char_value(27) := p_source_37;
27546 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
27547 l_rec_acct_attrs.array_num_value(28) := p_source_38;
27548 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
27549 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
27550 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
27551 l_rec_acct_attrs.array_char_value(30) := p_source_22;
27552 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
27553 l_rec_acct_attrs.array_num_value(31) := p_source_32;
27554 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
27555 l_rec_acct_attrs.array_num_value(32) := p_source_32;
27556
27557 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27558 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27559
27560 ---------------------------------------------------------------------------------------------------------------
27561 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27562 ---------------------------------------------------------------------------------------------------------------
27563 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27564
27565 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27566 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27567
27568 IF xla_accounting_cache_pkg.GetValueChar
27569 (p_source_code => 'LEDGER_CATEGORY_CODE'
27570 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27571 AND l_bflow_method_code = 'PRIOR_ENTRY'
27572 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27573 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27574 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27575 )
27576 THEN
27577 xla_ae_lines_pkg.BflowUpgEntry
27578 (p_business_method_code => l_bflow_method_code
27579 ,p_business_class_code => l_bflow_class_code
27580 ,p_balance_type => l_balance_type_code);
27581 ELSE
27582 NULL;
27583 -- No business flow processing for business flow method of NONE.
27584 END IF;
27585
27586 --
27587 -- call analytical criteria
27588 --
27589
27590 --
27591 -- call description
27592 --
27593
27594 xla_ae_lines_pkg.SetLineDescription(
27595 p_ae_header_id => l_ae_header_id
27596 ,p_description => Description_2 (
27597 p_application_id => p_application_id
27598 , p_ae_header_id => l_ae_header_id
27599 , p_source_3 => p_source_3
27600 )
27601 );
27602
27603
27604 --
27605 -- call ADRs
27606 -- Bug 4922099
27607 --
27608 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27609 (NVL(l_actual_upg_option, 'N') = 'O') OR
27610 (NVL(l_enc_upg_option, 'N') = 'O')
27611 )
27612 THEN
27613 NULL;
27614 --
27615 --
27616
27617 l_ccid := AcctDerRule_9(
27618 p_application_id => p_application_id
27619 , p_ae_header_id => l_ae_header_id
27620 , p_source_9 => p_source_9
27621 , x_transaction_coa_id => l_adr_transaction_coa_id
27622 , x_accounting_coa_id => l_adr_accounting_coa_id
27623 , x_value_type_code => l_adr_value_type_code
27624 , p_side => 'NA'
27625 );
27626
27627 xla_ae_lines_pkg.set_ccid(
27628 p_code_combination_id => l_ccid
27629 , p_value_type_code => l_adr_value_type_code
27630 , p_transaction_coa_id => l_adr_transaction_coa_id
27631 , p_accounting_coa_id => l_adr_accounting_coa_id
27632 , p_adr_code => 'FV_ACCOUNT_RULE'
27633 , p_adr_type_code => 'S'
27634 , p_component_type => l_component_type
27635 , p_component_code => l_component_code
27636 , p_component_type_code => l_component_type_code
27637 , p_component_appl_id => l_component_appl_id
27638 , p_amb_context_code => l_amb_context_code
27639 , p_side => 'NA'
27640 );
27641
27642
27643 l_segment := AcctDerRule_7(
27644 p_application_id => p_application_id
27645 , p_ae_header_id => l_ae_header_id
27646 , x_transaction_coa_id => l_adr_transaction_coa_id
27650 , x_value_type_code => l_adr_value_type_code
27647 , x_accounting_coa_id => l_adr_accounting_coa_id
27648 , x_flexfield_segment_code => l_adr_flexfield_segment_code
27649 , x_flex_value_set_id => l_adr_flex_value_set_id
27651 , x_value_combination_id => l_adr_value_combination_id
27652 , x_value_segment_code => l_adr_value_segment_code
27653 , p_side => 'NA'
27654 , p_override_seg_flag => 'Y'
27655 );
27656
27657 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
27658
27659 xla_ae_lines_pkg.set_segment(
27660 p_to_segment_code => 'GL_ACCOUNT'
27661 , p_segment_value => l_segment
27662 , p_from_segment_code => l_adr_value_segment_code
27663 , p_from_combination_id => l_adr_value_combination_id
27664 , p_value_type_code => l_adr_value_type_code
27665 , p_transaction_coa_id => l_adr_transaction_coa_id
27666 , p_accounting_coa_id => l_adr_accounting_coa_id
27667 , p_flexfield_segment_code => l_adr_flexfield_segment_code
27668 , p_flex_value_set_id => l_adr_flex_value_set_id
27669 , p_adr_code => 'FV_488101_PURCHASING'
27670 , p_adr_type_code => 'S'
27671 , p_component_type => l_component_type
27672 , p_component_code => l_component_code
27673 , p_component_type_code => l_component_type_code
27674 , p_component_appl_id => l_component_appl_id
27675 , p_amb_context_code => l_amb_context_code
27676 , p_entity_code => 'RELEASE'
27677 , p_event_class_code => 'RELEASE'
27678 , p_side => 'NA'
27679 );
27680
27681 END IF;
27682
27683 --
27684 --
27685 END IF;
27686 --
27687 -- Bug 4922099
27688 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27689 (NVL(l_enc_upg_option, 'N') = 'O')
27690 ) AND
27691 (l_bflow_method_code = 'PRIOR_ENTRY')
27692 )
27693 THEN
27694 IF
27695 --
27696 1 = 2
27697 --
27698 THEN
27699 xla_accounting_err_pkg.build_message
27700 (p_appli_s_name => 'XLA'
27701 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27702 ,p_token_1 => 'LINE_NUMBER'
27703 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27704 ,p_token_2 => 'LINE_TYPE_NAME'
27705 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27706 l_component_type
27707 ,l_component_code
27708 ,l_component_type_code
27709 ,l_component_appl_id
27710 ,l_amb_context_code
27711 ,l_entity_code
27712 ,l_event_class_code
27713 )
27714 ,p_token_3 => 'OWNER'
27715 ,p_value_3 => xla_lookups_pkg.get_meaning(
27716 p_lookup_type => 'XLA_OWNER_TYPE'
27717 ,p_lookup_code => l_component_type_code
27718 )
27719 ,p_token_4 => 'PRODUCT_NAME'
27720 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27721 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27722 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27723 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27724 ,p_ae_header_id => NULL
27725 );
27726
27727 IF (C_LEVEL_ERROR>= g_log_level) THEN
27728 trace
27729 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27730 ,p_level => C_LEVEL_ERROR
27731 ,p_module => l_log_module);
27732 END IF;
27733 END IF;
27734 END IF;
27735 --
27736 --
27737 ------------------------------------------------------------------------------------------------
27738 -- 4219869 Business Flow
27739 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27740 -- Prior Entry. Currently, the following code is always generated.
27741 ------------------------------------------------------------------------------------------------
27742 XLA_AE_LINES_PKG.ValidateCurrentLine;
27743
27744 ------------------------------------------------------------------------------------
27745 -- 4219869 Business Flow
27749
27746 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27747 ------------------------------------------------------------------------------------
27748 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27750 ----------------------------------------------------------------------------------
27751 -- 4219869 Business Flow
27752 -- Update journal entry status -- Need to generate this within IF <condition>
27753 ----------------------------------------------------------------------------------
27754 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27755 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27756 ,p_balance_type_code => l_balance_type_code
27757 );
27758
27759 -------------------------------------------------------------------------------------------
27760 -- 4262811 - Generate the Accrual Reversal lines
27761 -------------------------------------------------------------------------------------------
27762 BEGIN
27763 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27764 (g_array_event(p_event_id).array_value_num('header_index'));
27765 IF l_acc_rev_flag IS NULL THEN
27766 l_acc_rev_flag := 'N';
27767 END IF;
27768 EXCEPTION
27769 WHEN OTHERS THEN
27770 l_acc_rev_flag := 'N';
27771 END;
27772 --
27773 IF (l_acc_rev_flag = 'Y') THEN
27774
27775 -- 4645092 ------------------------------------------------------------------------------
27776 -- To allow MPA report to determine if it should generate report process
27777 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27778 ------------------------------------------------------------------------------------------
27779
27780 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27781 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27782
27783 --
27784 -- Update the line information that should be overwritten
27785 --
27786 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27787 p_header_num => 1);
27788 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27789
27790 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27791
27792 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27793 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27794 END IF;
27795
27796 --
27797 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27798 --
27799 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27800 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27801 ELSE
27802 ---------------------------------------------------------------------------------------------------
27803 -- 4262811a Switch Sign
27804 ---------------------------------------------------------------------------------------------------
27805 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27806 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27807 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27808 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27809 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27810 -- 5132302
27811 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27812 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27813
27814 END IF;
27815
27816 -- 4955764
27817 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27818 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27819
27820
27821 XLA_AE_LINES_PKG.ValidateCurrentLine;
27822 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27823
27824 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27825 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27826 ,p_balance_type_code => l_balance_type_code);
27827
27828 END IF;
27829
27830 -----------------------------------------------------------------------------------------
27831 -- 4262811 Multiperiod Accounting
27832 -----------------------------------------------------------------------------------------
27833 -- No MPA option is assigned.
27834
27835
27836 END IF;
27837 END IF;
27838 --
27839
27840 --
27841 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27842 trace
27843 (p_msg => 'END of AcctLineType_54'
27844 ,p_level => C_LEVEL_PROCEDURE
27845 ,p_module => l_log_module);
27846 END IF;
27847 --
27848 EXCEPTION
27849 WHEN xla_exceptions_pkg.application_exception THEN
27850 RAISE;
27851 WHEN OTHERS THEN
27852 xla_exceptions_pkg.raise_message
27853 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_54');
27854 END AcctLineType_54;
27855 --
27856
27857 ---------------------------------------
27858 --
27859 -- PRIVATE FUNCTION
27863 PROCEDURE AcctLineType_55 (
27860 -- AcctLineType_55
27861 --
27862 ---------------------------------------
27864 p_application_id IN NUMBER
27865 ,p_event_id IN NUMBER
27866 ,p_calculate_acctd_flag IN VARCHAR2
27867 ,p_calculate_g_l_flag IN VARCHAR2
27868 ,p_actual_flag IN OUT VARCHAR2
27869 ,p_balance_type_code OUT VARCHAR2
27870 ,p_gain_or_loss_ref OUT VARCHAR2
27871
27872 --Journal entry Line Description
27873 , p_source_3 IN VARCHAR2
27874 --Federal Fund Category
27875 , p_source_7 IN VARCHAR2
27876 --Federal Fund Expired Status
27877 , p_source_8 IN VARCHAR2
27878 --Budget Account
27879 , p_source_9 IN NUMBER
27880 --Federal Prior Year Flag
27881 , p_source_10 IN VARCHAR2
27882 --Federal Net Pya Adj Amt
27883 , p_source_11 IN NUMBER
27884 --Main Or Backing Code
27885 , p_source_13 IN VARCHAR2
27886 --Accounting Reversal Flag
27887 , p_source_15 IN VARCHAR2
27888 --Distribution Link Type
27889 , p_source_17 IN VARCHAR2
27890 --PO Distribution Identifier
27891 , p_source_19 IN NUMBER
27892 --Applied To Application Identifier
27893 , p_source_21 IN NUMBER
27894 --Applied To Distribution Link Type
27895 , p_source_22 IN VARCHAR2
27896 --Applied To Entity Code
27897 , p_source_23 IN VARCHAR2
27898 --Applied To Distribution Identifier 1
27899 , p_source_24 IN NUMBER
27900 --Applied To Header Identifier 1
27901 , p_source_25 IN NUMBER
27902 --Entered Amount
27903 , p_source_26 IN NUMBER
27904 --Currency Code
27905 , p_source_27 IN VARCHAR2
27906 --Accounted Amount
27907 , p_source_28 IN NUMBER
27908 --PO Encumbrance Upgrade Option
27909 , p_source_29 IN VARCHAR2
27910 --PO Upgrade Encumbrance Type Identifier
27911 , p_source_32 IN NUMBER
27912 --Currency Conversion Date
27913 , p_source_35 IN DATE
27914 --Currency Conversion Rate
27915 , p_source_36 IN NUMBER
27916 --Currency Conversion Type
27917 , p_source_37 IN VARCHAR2
27918 --Federal Pya Differential Amt
27919 , p_source_38 IN NUMBER
27920 --PO Release Identifier
27921 , p_source_41 IN NUMBER
27922 )
27923 IS
27924
27925 l_component_type VARCHAR2(80);
27926 l_component_code VARCHAR2(30);
27927 l_component_type_code VARCHAR2(1);
27928 l_component_appl_id INTEGER;
27929 l_amb_context_code VARCHAR2(30);
27930 l_entity_code VARCHAR2(30);
27931 l_event_class_code VARCHAR2(30);
27932 l_ae_header_id NUMBER;
27933 l_event_type_code VARCHAR2(30);
27934 l_line_definition_code VARCHAR2(30);
27935 l_line_definition_owner_code VARCHAR2(1);
27936 --
27937 -- adr variables
27938 l_segment VARCHAR2(30);
27939 l_ccid NUMBER;
27940 l_adr_transaction_coa_id NUMBER;
27941 l_adr_accounting_coa_id NUMBER;
27942 l_adr_flexfield_segment_code VARCHAR2(30);
27943 l_adr_flex_value_set_id NUMBER;
27944 l_adr_value_type_code VARCHAR2(30);
27945 l_adr_value_combination_id NUMBER;
27946 l_adr_value_segment_code VARCHAR2(30);
27947
27948 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27949 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27950 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27951 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27952
27953 -- 4262811 Variables ------------------------------------------------------------------------------------------
27954 l_entered_amt_idx NUMBER;
27955 l_accted_amt_idx NUMBER;
27956 l_acc_rev_flag VARCHAR2(1);
27957 l_accrual_line_num NUMBER;
27958 l_tmp_amt NUMBER;
27959 l_acc_rev_natural_side_code VARCHAR2(1);
27960
27961 l_num_entries NUMBER;
27962 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27963 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27964 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27965 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27966 l_recog_line_1 NUMBER;
27967 l_recog_line_2 NUMBER;
27968
27969 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27970 l_bflow_applied_to_amt NUMBER; -- 5132302
27971 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27972
27973 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27974
27975 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27976 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27977
27978 ---------------------------------------------------------------------------------------------------------------
27979
27980
27981 --
27982 -- bulk performance
27983 --
27984 l_balance_type_code VARCHAR2(1);
27985 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27986 l_log_module VARCHAR2(240);
27987
27988 --
27989 -- Upgrade strategy
27990 --
27991 l_actual_upg_option VARCHAR2(1);
27992 l_enc_upg_option VARCHAR2(1);
27993
27994 --
27995 BEGIN
27996 --
27997 IF g_log_enabled THEN
27998 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
27999 END IF;
28000 --
28001 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28002
28003 trace
28004 (p_msg => 'BEGIN of AcctLineType_55'
28005 ,p_level => C_LEVEL_PROCEDURE
28006 ,p_module => l_log_module);
28007
28008 END IF;
28009 --
28010 l_component_type := 'AMB_JLT';
28011 l_component_code := 'FV_REL_PYA_DIFF_RESERVE_DR';
28012 l_component_type_code := 'S';
28013 l_component_appl_id := 201;
28014 l_amb_context_code := 'DEFAULT';
28015 l_entity_code := 'RELEASE';
28016 l_event_class_code := 'RELEASE';
28017 l_event_type_code := 'RELEASE_ALL';
28018 l_line_definition_owner_code := 'S';
28019 l_line_definition_code := 'FV_RELEASE_ALL';
28020 --
28021 l_balance_type_code := 'A';
28022 l_segment := NULL;
28023 l_ccid := NULL;
28024 l_adr_transaction_coa_id := NULL;
28025 l_adr_accounting_coa_id := NULL;
28026 l_adr_flexfield_segment_code := NULL;
28027 l_adr_flex_value_set_id := NULL;
28028 l_adr_value_type_code := NULL;
28029 l_adr_value_combination_id := NULL;
28030 l_adr_value_segment_code := NULL;
28031
28032 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28033 l_bflow_class_code := ''; -- 4219869 Business Flow
28034 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28035 l_budgetary_control_flag := 'Y';
28036
28037 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28038 l_bflow_applied_to_amt := NULL; -- 5132302
28039 l_entered_amt_idx := NULL; -- 4262811
28040 l_accted_amt_idx := NULL; -- 4262811
28041 l_acc_rev_flag := NULL; -- 4262811
28042 l_accrual_line_num := NULL; -- 4262811
28043 l_tmp_amt := NULL; -- 4262811
28044 --
28045
28046 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28047 l_balance_type_code <> 'B' THEN
28048 IF NVL(
28049 xla_ae_sources_pkg.GetSystemSourceChar(
28050 p_source_code => 'XLA_EVENT_TYPE_CODE'
28051 , p_source_type_code => 'Y'
28052 , p_source_application_id => 602
28053 ),'
28054 ') = 'RELEASE_RESERVED' AND
28055 NVL(p_source_13,'
28056 ') = 'M' AND
28057 NVL(p_source_10,'
28058 ') = 'Y' AND
28059 NVL(p_source_11,9E125) <> 0 AND
28060 p_source_11 IS NOT NULL
28061 THEN
28062
28063 --
28064 XLA_AE_LINES_PKG.SetNewLine;
28065
28066 p_balance_type_code := l_balance_type_code;
28067 -- set the flag so later we will know whether the gain loss line needs to be created
28068
28069 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28070 p_actual_flag :='A';
28071 END IF;
28072
28073 --
28074 -- bulk performance
28075 --
28076 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28077 p_header_num => 0); -- 4262811
28078 --
28079 -- set accounting line options
28080 --
28081 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28082 p_natural_side_code => 'D'
28083 , p_gain_or_loss_flag => 'N'
28084 , p_gl_transfer_mode_code => 'S'
28085 , p_acct_entry_type_code => 'A'
28086 , p_switch_side_flag => 'Y'
28087 , p_merge_duplicate_code => 'N'
28088 );
28089 --
28090 l_acc_rev_natural_side_code := 'C'; -- 4262811
28091 --
28092 --
28093 -- set accounting line type info
28094 --
28095 xla_ae_lines_pkg.SetAcctLineType
28096 (p_component_type => l_component_type
28097 ,p_event_type_code => l_event_type_code
28098 ,p_line_definition_owner_code => l_line_definition_owner_code
28099 ,p_line_definition_code => l_line_definition_code
28100 ,p_accounting_line_code => l_component_code
28101 ,p_accounting_line_type_code => l_component_type_code
28102 ,p_accounting_line_appl_id => l_component_appl_id
28103 ,p_amb_context_code => l_amb_context_code
28104 ,p_entity_code => l_entity_code
28105 ,p_event_class_code => l_event_class_code);
28106 --
28107 -- set accounting class
28108 --
28109 xla_ae_lines_pkg.SetAcctClass(
28110 p_accounting_class_code => 'PURCHASE_ORDER'
28111 , p_ae_header_id => l_ae_header_id
28112 );
28113
28114 --
28115 -- set rounding class
28116 --
28117 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28118 'PURCHASE_ORDER';
28119
28120 --
28121 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28122 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28123 --
28124 -- bulk performance
28125 --
28126 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28127
28128 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28129 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28130
28131 -- 4955764
28132 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28133 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28134
28135 -- 4458381 Public Sector Enh
28136
28137 --
28138 -- set accounting attributes for the line type
28139 --
28140 l_entered_amt_idx := 23;
28141 l_accted_amt_idx := 28;
28142 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28143 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28144 l_rec_acct_attrs.array_char_value(1) := p_source_15;
28145 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
28146 l_rec_acct_attrs.array_num_value(2) :=
28147 xla_ae_sources_pkg.GetSystemSourceNum(
28148 p_source_code => 'XLA_EVENT_APPL_ID'
28149 , p_source_type_code => 'Y'
28150 , p_source_application_id => 602
28151 );
28152 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
28153 l_rec_acct_attrs.array_char_value(3) := p_source_17;
28154 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
28155 l_rec_acct_attrs.array_char_value(4) :=
28156 xla_ae_sources_pkg.GetSystemSourceChar(
28157 p_source_code => 'XLA_ENTITY_CODE'
28158 , p_source_type_code => 'Y'
28159 , p_source_application_id => 602
28160 );
28161 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
28165 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
28162 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
28163 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
28164 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
28166 l_rec_acct_attrs.array_num_value(7) := p_source_21;
28167 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28168 l_rec_acct_attrs.array_char_value(8) := p_source_22;
28169 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
28170 l_rec_acct_attrs.array_char_value(9) := p_source_23;
28171 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
28172 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
28173 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28174 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
28175 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
28176 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
28177 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
28178 l_rec_acct_attrs.array_char_value(13) := p_source_17;
28179 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
28180 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
28181 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
28182 l_rec_acct_attrs.array_num_value(15) := p_source_26;
28183 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
28184 l_rec_acct_attrs.array_char_value(16) := p_source_27;
28185 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
28186 l_rec_acct_attrs.array_num_value(17) := p_source_28;
28187 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
28188 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
28189 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
28190 l_rec_acct_attrs.array_num_value(19) := p_source_26;
28191 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
28192 l_rec_acct_attrs.array_char_value(20) := p_source_27;
28193 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
28194 l_rec_acct_attrs.array_num_value(21) := p_source_28;
28195 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
28196 l_rec_acct_attrs.array_char_value(22) := p_source_29;
28197 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
28198 l_rec_acct_attrs.array_num_value(23) := p_source_38;
28199 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
28200 l_rec_acct_attrs.array_char_value(24) := p_source_27;
28201 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
28202 l_rec_acct_attrs.array_date_value(25) := p_source_35;
28203 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
28204 l_rec_acct_attrs.array_num_value(26) := p_source_36;
28205 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
28206 l_rec_acct_attrs.array_char_value(27) := p_source_37;
28207 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
28208 l_rec_acct_attrs.array_num_value(28) := p_source_38;
28209 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
28210 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
28211 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
28212 l_rec_acct_attrs.array_char_value(30) := p_source_22;
28213 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
28214 l_rec_acct_attrs.array_num_value(31) := p_source_32;
28215 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
28216 l_rec_acct_attrs.array_num_value(32) := p_source_32;
28217
28218 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28219 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28220
28221 ---------------------------------------------------------------------------------------------------------------
28222 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28223 ---------------------------------------------------------------------------------------------------------------
28224 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28225
28226 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28227 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28228
28229 IF xla_accounting_cache_pkg.GetValueChar
28230 (p_source_code => 'LEDGER_CATEGORY_CODE'
28231 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28232 AND l_bflow_method_code = 'PRIOR_ENTRY'
28233 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28234 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28235 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28236 )
28237 THEN
28238 xla_ae_lines_pkg.BflowUpgEntry
28239 (p_business_method_code => l_bflow_method_code
28240 ,p_business_class_code => l_bflow_class_code
28241 ,p_balance_type => l_balance_type_code);
28242 ELSE
28243 NULL;
28244 -- No business flow processing for business flow method of NONE.
28245 END IF;
28246
28247 --
28248 -- call analytical criteria
28249 --
28250
28251 --
28252 -- call description
28253 --
28254
28255 xla_ae_lines_pkg.SetLineDescription(
28256 p_ae_header_id => l_ae_header_id
28257 ,p_description => Description_2 (
28261 )
28258 p_application_id => p_application_id
28259 , p_ae_header_id => l_ae_header_id
28260 , p_source_3 => p_source_3
28262 );
28263
28264
28265 --
28266 -- call ADRs
28267 -- Bug 4922099
28268 --
28269 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28270 (NVL(l_actual_upg_option, 'N') = 'O') OR
28271 (NVL(l_enc_upg_option, 'N') = 'O')
28272 )
28273 THEN
28274 NULL;
28275 --
28276 --
28277
28278 l_ccid := AcctDerRule_9(
28279 p_application_id => p_application_id
28280 , p_ae_header_id => l_ae_header_id
28281 , p_source_9 => p_source_9
28282 , x_transaction_coa_id => l_adr_transaction_coa_id
28283 , x_accounting_coa_id => l_adr_accounting_coa_id
28284 , x_value_type_code => l_adr_value_type_code
28285 , p_side => 'NA'
28286 );
28287
28288 xla_ae_lines_pkg.set_ccid(
28289 p_code_combination_id => l_ccid
28290 , p_value_type_code => l_adr_value_type_code
28291 , p_transaction_coa_id => l_adr_transaction_coa_id
28292 , p_accounting_coa_id => l_adr_accounting_coa_id
28293 , p_adr_code => 'FV_ACCOUNT_RULE'
28294 , p_adr_type_code => 'S'
28295 , p_component_type => l_component_type
28296 , p_component_code => l_component_code
28297 , p_component_type_code => l_component_type_code
28298 , p_component_appl_id => l_component_appl_id
28299 , p_amb_context_code => l_amb_context_code
28300 , p_side => 'NA'
28301 );
28302
28303
28304 l_segment := AcctDerRule_12(
28305 p_application_id => p_application_id
28306 , p_ae_header_id => l_ae_header_id
28307 , p_source_7 => p_source_7
28308 , p_source_8 => p_source_8
28309 , p_source_10 => p_source_10
28310 , p_source_11 => p_source_11
28311 , x_transaction_coa_id => l_adr_transaction_coa_id
28312 , x_accounting_coa_id => l_adr_accounting_coa_id
28313 , x_flexfield_segment_code => l_adr_flexfield_segment_code
28314 , x_flex_value_set_id => l_adr_flex_value_set_id
28315 , x_value_type_code => l_adr_value_type_code
28316 , x_value_combination_id => l_adr_value_combination_id
28317 , x_value_segment_code => l_adr_value_segment_code
28318 , p_side => 'NA'
28319 , p_override_seg_flag => 'Y'
28320 );
28321
28322 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
28323
28324 xla_ae_lines_pkg.set_segment(
28325 p_to_segment_code => 'GL_ACCOUNT'
28326 , p_segment_value => l_segment
28327 , p_from_segment_code => l_adr_value_segment_code
28328 , p_from_combination_id => l_adr_value_combination_id
28329 , p_value_type_code => l_adr_value_type_code
28330 , p_transaction_coa_id => l_adr_transaction_coa_id
28331 , p_accounting_coa_id => l_adr_accounting_coa_id
28332 , p_flexfield_segment_code => l_adr_flexfield_segment_code
28333 , p_flex_value_set_id => l_adr_flex_value_set_id
28334 , p_adr_code => 'FV_PYA_46X002_487101'
28335 , p_adr_type_code => 'S'
28336 , p_component_type => l_component_type
28337 , p_component_code => l_component_code
28338 , p_component_type_code => l_component_type_code
28339 , p_component_appl_id => l_component_appl_id
28340 , p_amb_context_code => l_amb_context_code
28341 , p_entity_code => 'RELEASE'
28342 , p_event_class_code => 'RELEASE'
28343 , p_side => 'NA'
28344 );
28345
28346 END IF;
28347
28348 --
28349 --
28350 END IF;
28351 --
28352 -- Bug 4922099
28353 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28354 (NVL(l_enc_upg_option, 'N') = 'O')
28355 ) AND
28356 (l_bflow_method_code = 'PRIOR_ENTRY')
28357 )
28358 THEN
28359 IF
28360 --
28361 1 = 2
28362 --
28363 THEN
28364 xla_accounting_err_pkg.build_message
28365 (p_appli_s_name => 'XLA'
28366 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28367 ,p_token_1 => 'LINE_NUMBER'
28368 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28369 ,p_token_2 => 'LINE_TYPE_NAME'
28370 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28371 l_component_type
28372 ,l_component_code
28373 ,l_component_type_code
28374 ,l_component_appl_id
28375 ,l_amb_context_code
28376 ,l_entity_code
28377 ,l_event_class_code
28378 )
28379 ,p_token_3 => 'OWNER'
28380 ,p_value_3 => xla_lookups_pkg.get_meaning(
28381 p_lookup_type => 'XLA_OWNER_TYPE'
28382 ,p_lookup_code => l_component_type_code
28383 )
28384 ,p_token_4 => 'PRODUCT_NAME'
28385 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28386 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28387 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28388 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28389 ,p_ae_header_id => NULL
28390 );
28391
28392 IF (C_LEVEL_ERROR>= g_log_level) THEN
28393 trace
28394 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28395 ,p_level => C_LEVEL_ERROR
28396 ,p_module => l_log_module);
28397 END IF;
28398 END IF;
28399 END IF;
28400 --
28401 --
28402 ------------------------------------------------------------------------------------------------
28403 -- 4219869 Business Flow
28404 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28405 -- Prior Entry. Currently, the following code is always generated.
28406 ------------------------------------------------------------------------------------------------
28407 XLA_AE_LINES_PKG.ValidateCurrentLine;
28408
28409 ------------------------------------------------------------------------------------
28410 -- 4219869 Business Flow
28411 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28412 ------------------------------------------------------------------------------------
28413 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28414
28415 ----------------------------------------------------------------------------------
28416 -- 4219869 Business Flow
28417 -- Update journal entry status -- Need to generate this within IF <condition>
28418 ----------------------------------------------------------------------------------
28419 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28420 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28421 ,p_balance_type_code => l_balance_type_code
28422 );
28423
28424 -------------------------------------------------------------------------------------------
28425 -- 4262811 - Generate the Accrual Reversal lines
28426 -------------------------------------------------------------------------------------------
28427 BEGIN
28428 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28429 (g_array_event(p_event_id).array_value_num('header_index'));
28430 IF l_acc_rev_flag IS NULL THEN
28431 l_acc_rev_flag := 'N';
28432 END IF;
28433 EXCEPTION
28434 WHEN OTHERS THEN
28435 l_acc_rev_flag := 'N';
28436 END;
28437 --
28438 IF (l_acc_rev_flag = 'Y') THEN
28439
28440 -- 4645092 ------------------------------------------------------------------------------
28441 -- To allow MPA report to determine if it should generate report process
28442 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28443 ------------------------------------------------------------------------------------------
28444
28445 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28446 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28447
28448 --
28449 -- Update the line information that should be overwritten
28450 --
28451 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28452 p_header_num => 1);
28453 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28454
28455 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28456
28457 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28458 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28459 END IF;
28460
28461 --
28462 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28463 --
28464 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28465 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28466 ELSE
28467 ---------------------------------------------------------------------------------------------------
28468 -- 4262811a Switch Sign
28469 ---------------------------------------------------------------------------------------------------
28470 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28471 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28472 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28473 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28474 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28475 -- 5132302
28476 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28477 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28478
28479 END IF;
28480
28481 -- 4955764
28482 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28483 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28484
28485
28486 XLA_AE_LINES_PKG.ValidateCurrentLine;
28487 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28488
28489 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28490 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28491 ,p_balance_type_code => l_balance_type_code);
28492
28493 END IF;
28494
28495 -----------------------------------------------------------------------------------------
28496 -- 4262811 Multiperiod Accounting
28497 -----------------------------------------------------------------------------------------
28498 -- No MPA option is assigned.
28499
28500
28501 END IF;
28502 END IF;
28503 --
28504
28505 --
28506 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28507 trace
28508 (p_msg => 'END of AcctLineType_55'
28509 ,p_level => C_LEVEL_PROCEDURE
28510 ,p_module => l_log_module);
28511 END IF;
28512 --
28513 EXCEPTION
28514 WHEN xla_exceptions_pkg.application_exception THEN
28515 RAISE;
28516 WHEN OTHERS THEN
28517 xla_exceptions_pkg.raise_message
28518 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_55');
28519 END AcctLineType_55;
28520 --
28521
28522 ---------------------------------------
28523 --
28524 -- PRIVATE FUNCTION
28525 -- AcctLineType_56
28526 --
28527 ---------------------------------------
28528 PROCEDURE AcctLineType_56 (
28529 p_application_id IN NUMBER
28530 ,p_event_id IN NUMBER
28531 ,p_calculate_acctd_flag IN VARCHAR2
28532 ,p_calculate_g_l_flag IN VARCHAR2
28533 ,p_actual_flag IN OUT VARCHAR2
28534 ,p_balance_type_code OUT VARCHAR2
28535 ,p_gain_or_loss_ref OUT VARCHAR2
28536
28537 --Journal entry Line Description
28538 , p_source_3 IN VARCHAR2
28539 --Budget Account
28540 , p_source_9 IN NUMBER
28541 --Federal Prior Year Flag
28542 , p_source_10 IN VARCHAR2
28543 --Federal Net Pya Adj Amt
28544 , p_source_11 IN NUMBER
28545 --Main Or Backing Code
28546 , p_source_13 IN VARCHAR2
28547 --Accounting Reversal Flag
28548 , p_source_15 IN VARCHAR2
28549 --Distribution Link Type
28550 , p_source_17 IN VARCHAR2
28551 --PO Distribution Identifier
28552 , p_source_19 IN NUMBER
28553 --Applied To Application Identifier
28554 , p_source_21 IN NUMBER
28555 --Applied To Distribution Link Type
28556 , p_source_22 IN VARCHAR2
28557 --Applied To Entity Code
28558 , p_source_23 IN VARCHAR2
28559 --Applied To Distribution Identifier 1
28560 , p_source_24 IN NUMBER
28561 --Applied To Header Identifier 1
28562 , p_source_25 IN NUMBER
28563 --Entered Amount
28564 , p_source_26 IN NUMBER
28565 --Currency Code
28566 , p_source_27 IN VARCHAR2
28567 --Accounted Amount
28568 , p_source_28 IN NUMBER
28569 --PO Encumbrance Upgrade Option
28570 , p_source_29 IN VARCHAR2
28571 --PO Upgrade Encumbrance Type Identifier
28572 , p_source_32 IN NUMBER
28573 --Currency Conversion Date
28574 , p_source_35 IN DATE
28575 --Currency Conversion Rate
28576 , p_source_36 IN NUMBER
28577 --Currency Conversion Type
28578 , p_source_37 IN VARCHAR2
28579 --Federal Anticipated Amt
28580 , p_source_39 IN NUMBER
28581 --PO Release Identifier
28582 , p_source_41 IN NUMBER
28583 )
28584 IS
28585
28586 l_component_type VARCHAR2(80);
28587 l_component_code VARCHAR2(30);
28588 l_component_type_code VARCHAR2(1);
28589 l_component_appl_id INTEGER;
28590 l_amb_context_code VARCHAR2(30);
28591 l_entity_code VARCHAR2(30);
28592 l_event_class_code VARCHAR2(30);
28593 l_ae_header_id NUMBER;
28594 l_event_type_code VARCHAR2(30);
28595 l_line_definition_code VARCHAR2(30);
28596 l_line_definition_owner_code VARCHAR2(1);
28597 --
28598 -- adr variables
28599 l_segment VARCHAR2(30);
28600 l_ccid NUMBER;
28601 l_adr_transaction_coa_id NUMBER;
28602 l_adr_accounting_coa_id NUMBER;
28603 l_adr_flexfield_segment_code VARCHAR2(30);
28604 l_adr_flex_value_set_id NUMBER;
28605 l_adr_value_type_code VARCHAR2(30);
28606 l_adr_value_combination_id NUMBER;
28607 l_adr_value_segment_code VARCHAR2(30);
28608
28609 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28610 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28611 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28612 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28613
28614 -- 4262811 Variables ------------------------------------------------------------------------------------------
28615 l_entered_amt_idx NUMBER;
28616 l_accted_amt_idx NUMBER;
28617 l_acc_rev_flag VARCHAR2(1);
28618 l_accrual_line_num NUMBER;
28619 l_tmp_amt NUMBER;
28620 l_acc_rev_natural_side_code VARCHAR2(1);
28621
28622 l_num_entries NUMBER;
28623 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28624 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28625 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28626 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28627 l_recog_line_1 NUMBER;
28628 l_recog_line_2 NUMBER;
28629
28630 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28631 l_bflow_applied_to_amt NUMBER; -- 5132302
28632 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28633
28634 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28635
28636 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28637 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28638
28639 ---------------------------------------------------------------------------------------------------------------
28640
28641
28642 --
28643 -- bulk performance
28644 --
28645 l_balance_type_code VARCHAR2(1);
28646 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28647 l_log_module VARCHAR2(240);
28648
28649 --
28650 -- Upgrade strategy
28651 --
28652 l_actual_upg_option VARCHAR2(1);
28653 l_enc_upg_option VARCHAR2(1);
28654
28655 --
28656 BEGIN
28657 --
28658 IF g_log_enabled THEN
28659 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
28660 END IF;
28661 --
28662 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28663
28664 trace
28665 (p_msg => 'BEGIN of AcctLineType_56'
28666 ,p_level => C_LEVEL_PROCEDURE
28667 ,p_module => l_log_module);
28668
28669 END IF;
28670 --
28671 l_component_type := 'AMB_JLT';
28672 l_component_code := 'FV_REL_PYA_DW_ANTICIAPTED_CR';
28673 l_component_type_code := 'S';
28674 l_component_appl_id := 201;
28675 l_amb_context_code := 'DEFAULT';
28676 l_entity_code := 'RELEASE';
28677 l_event_class_code := 'RELEASE';
28678 l_event_type_code := 'RELEASE_ALL';
28679 l_line_definition_owner_code := 'S';
28680 l_line_definition_code := 'FV_RELEASE_ALL';
28681 --
28682 l_balance_type_code := 'A';
28683 l_segment := NULL;
28684 l_ccid := NULL;
28685 l_adr_transaction_coa_id := NULL;
28686 l_adr_accounting_coa_id := NULL;
28687 l_adr_flexfield_segment_code := NULL;
28688 l_adr_flex_value_set_id := NULL;
28689 l_adr_value_type_code := NULL;
28690 l_adr_value_combination_id := NULL;
28691 l_adr_value_segment_code := NULL;
28692
28693 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28694 l_bflow_class_code := ''; -- 4219869 Business Flow
28695 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28696 l_budgetary_control_flag := 'Y';
28697
28698 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28699 l_bflow_applied_to_amt := NULL; -- 5132302
28700 l_entered_amt_idx := NULL; -- 4262811
28701 l_accted_amt_idx := NULL; -- 4262811
28702 l_acc_rev_flag := NULL; -- 4262811
28703 l_accrual_line_num := NULL; -- 4262811
28704 l_tmp_amt := NULL; -- 4262811
28705 --
28706
28707 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28708 l_balance_type_code <> 'B' THEN
28709 IF NVL(
28710 xla_ae_sources_pkg.GetSystemSourceChar(
28711 p_source_code => 'XLA_EVENT_TYPE_CODE'
28712 , p_source_type_code => 'Y'
28713 , p_source_application_id => 602
28714 ),'
28715 ') = 'RELEASE_RESERVED' AND
28716 NVL(p_source_13,'
28717 ') = 'M' AND
28718 NVL(p_source_10,'
28719 ') = 'Y' AND
28720 p_source_11 < 0 AND
28721 NVL(p_source_39,9E125) <> 0 AND
28722 p_source_39 IS NOT NULL
28723 THEN
28724
28725 --
28726 XLA_AE_LINES_PKG.SetNewLine;
28727
28728 p_balance_type_code := l_balance_type_code;
28729 -- set the flag so later we will know whether the gain loss line needs to be created
28730
28731 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28732 p_actual_flag :='A';
28733 END IF;
28734
28735 --
28736 -- bulk performance
28737 --
28738 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28739 p_header_num => 0); -- 4262811
28740 --
28741 -- set accounting line options
28742 --
28743 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28744 p_natural_side_code => 'C'
28745 , p_gain_or_loss_flag => 'N'
28746 , p_gl_transfer_mode_code => 'S'
28747 , p_acct_entry_type_code => 'A'
28748 , p_switch_side_flag => 'Y'
28749 , p_merge_duplicate_code => 'N'
28750 );
28751 --
28752 l_acc_rev_natural_side_code := 'D'; -- 4262811
28753 --
28754 --
28755 -- set accounting line type info
28756 --
28757 xla_ae_lines_pkg.SetAcctLineType
28758 (p_component_type => l_component_type
28759 ,p_event_type_code => l_event_type_code
28760 ,p_line_definition_owner_code => l_line_definition_owner_code
28764 ,p_accounting_line_appl_id => l_component_appl_id
28761 ,p_line_definition_code => l_line_definition_code
28762 ,p_accounting_line_code => l_component_code
28763 ,p_accounting_line_type_code => l_component_type_code
28765 ,p_amb_context_code => l_amb_context_code
28766 ,p_entity_code => l_entity_code
28767 ,p_event_class_code => l_event_class_code);
28768 --
28769 -- set accounting class
28770 --
28771 xla_ae_lines_pkg.SetAcctClass(
28772 p_accounting_class_code => 'PURCHASE_ORDER'
28773 , p_ae_header_id => l_ae_header_id
28774 );
28775
28776 --
28777 -- set rounding class
28778 --
28779 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28780 'PURCHASE_ORDER';
28781
28782 --
28783 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28784 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28785 --
28786 -- bulk performance
28787 --
28788 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28789
28790 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28791 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28792
28793 -- 4955764
28794 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28795 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28796
28797 -- 4458381 Public Sector Enh
28798
28799 --
28800 -- set accounting attributes for the line type
28801 --
28802 l_entered_amt_idx := 23;
28803 l_accted_amt_idx := 28;
28804 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28805 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28806 l_rec_acct_attrs.array_char_value(1) := p_source_15;
28807 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
28808 l_rec_acct_attrs.array_num_value(2) :=
28809 xla_ae_sources_pkg.GetSystemSourceNum(
28810 p_source_code => 'XLA_EVENT_APPL_ID'
28811 , p_source_type_code => 'Y'
28812 , p_source_application_id => 602
28813 );
28814 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
28815 l_rec_acct_attrs.array_char_value(3) := p_source_17;
28816 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
28817 l_rec_acct_attrs.array_char_value(4) :=
28818 xla_ae_sources_pkg.GetSystemSourceChar(
28819 p_source_code => 'XLA_ENTITY_CODE'
28820 , p_source_type_code => 'Y'
28821 , p_source_application_id => 602
28822 );
28823 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
28824 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
28825 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
28826 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
28827 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
28828 l_rec_acct_attrs.array_num_value(7) := p_source_21;
28829 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28830 l_rec_acct_attrs.array_char_value(8) := p_source_22;
28831 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
28832 l_rec_acct_attrs.array_char_value(9) := p_source_23;
28833 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
28834 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
28835 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28836 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
28837 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
28838 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
28839 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
28840 l_rec_acct_attrs.array_char_value(13) := p_source_17;
28841 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
28842 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
28843 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
28844 l_rec_acct_attrs.array_num_value(15) := p_source_26;
28845 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
28846 l_rec_acct_attrs.array_char_value(16) := p_source_27;
28847 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
28848 l_rec_acct_attrs.array_num_value(17) := p_source_28;
28849 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
28850 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
28851 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
28852 l_rec_acct_attrs.array_num_value(19) := p_source_26;
28853 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
28854 l_rec_acct_attrs.array_char_value(20) := p_source_27;
28855 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
28856 l_rec_acct_attrs.array_num_value(21) := p_source_28;
28857 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
28858 l_rec_acct_attrs.array_char_value(22) := p_source_29;
28859 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
28860 l_rec_acct_attrs.array_num_value(23) := p_source_39;
28861 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
28862 l_rec_acct_attrs.array_char_value(24) := p_source_27;
28863 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
28864 l_rec_acct_attrs.array_date_value(25) := p_source_35;
28868 l_rec_acct_attrs.array_char_value(27) := p_source_37;
28865 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
28866 l_rec_acct_attrs.array_num_value(26) := p_source_36;
28867 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
28869 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
28870 l_rec_acct_attrs.array_num_value(28) := p_source_39;
28871 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
28872 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
28873 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
28874 l_rec_acct_attrs.array_char_value(30) := p_source_22;
28875 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
28876 l_rec_acct_attrs.array_num_value(31) := p_source_32;
28877 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
28878 l_rec_acct_attrs.array_num_value(32) := p_source_32;
28879
28880 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28881 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28882
28883 ---------------------------------------------------------------------------------------------------------------
28884 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28885 ---------------------------------------------------------------------------------------------------------------
28886 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28887
28888 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28889 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28890
28891 IF xla_accounting_cache_pkg.GetValueChar
28892 (p_source_code => 'LEDGER_CATEGORY_CODE'
28893 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28894 AND l_bflow_method_code = 'PRIOR_ENTRY'
28895 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28896 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28897 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28898 )
28899 THEN
28900 xla_ae_lines_pkg.BflowUpgEntry
28901 (p_business_method_code => l_bflow_method_code
28902 ,p_business_class_code => l_bflow_class_code
28903 ,p_balance_type => l_balance_type_code);
28904 ELSE
28905 NULL;
28906 -- No business flow processing for business flow method of NONE.
28907 END IF;
28908
28909 --
28910 -- call analytical criteria
28911 --
28912
28913 --
28914 -- call description
28915 --
28916
28917 xla_ae_lines_pkg.SetLineDescription(
28918 p_ae_header_id => l_ae_header_id
28919 ,p_description => Description_2 (
28920 p_application_id => p_application_id
28921 , p_ae_header_id => l_ae_header_id
28922 , p_source_3 => p_source_3
28923 )
28924 );
28925
28926
28927 --
28928 -- call ADRs
28929 -- Bug 4922099
28930 --
28931 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28932 (NVL(l_actual_upg_option, 'N') = 'O') OR
28933 (NVL(l_enc_upg_option, 'N') = 'O')
28934 )
28935 THEN
28936 NULL;
28937 --
28938 --
28939
28940 l_ccid := AcctDerRule_9(
28941 p_application_id => p_application_id
28942 , p_ae_header_id => l_ae_header_id
28943 , p_source_9 => p_source_9
28944 , x_transaction_coa_id => l_adr_transaction_coa_id
28945 , x_accounting_coa_id => l_adr_accounting_coa_id
28946 , x_value_type_code => l_adr_value_type_code
28947 , p_side => 'NA'
28948 );
28949
28950 xla_ae_lines_pkg.set_ccid(
28951 p_code_combination_id => l_ccid
28952 , p_value_type_code => l_adr_value_type_code
28953 , p_transaction_coa_id => l_adr_transaction_coa_id
28954 , p_accounting_coa_id => l_adr_accounting_coa_id
28955 , p_adr_code => 'FV_ACCOUNT_RULE'
28956 , p_adr_type_code => 'S'
28957 , p_component_type => l_component_type
28958 , p_component_code => l_component_code
28959 , p_component_type_code => l_component_type_code
28960 , p_component_appl_id => l_component_appl_id
28961 , p_amb_context_code => l_amb_context_code
28962 , p_side => 'NA'
28963 );
28964
28965
28966 l_segment := AcctDerRule_10(
28967 p_application_id => p_application_id
28968 , p_ae_header_id => l_ae_header_id
28969 , x_transaction_coa_id => l_adr_transaction_coa_id
28970 , x_accounting_coa_id => l_adr_accounting_coa_id
28971 , x_flexfield_segment_code => l_adr_flexfield_segment_code
28972 , x_flex_value_set_id => l_adr_flex_value_set_id
28973 , x_value_type_code => l_adr_value_type_code
28974 , x_value_combination_id => l_adr_value_combination_id
28975 , x_value_segment_code => l_adr_value_segment_code
28976 , p_side => 'NA'
28977 , p_override_seg_flag => 'Y'
28978 );
28979
28980 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
28981
28982 xla_ae_lines_pkg.set_segment(
28983 p_to_segment_code => 'GL_ACCOUNT'
28984 , p_segment_value => l_segment
28985 , p_from_segment_code => l_adr_value_segment_code
28986 , p_from_combination_id => l_adr_value_combination_id
28987 , p_value_type_code => l_adr_value_type_code
28988 , p_transaction_coa_id => l_adr_transaction_coa_id
28989 , p_accounting_coa_id => l_adr_accounting_coa_id
28990 , p_flexfield_segment_code => l_adr_flexfield_segment_code
28991 , p_flex_value_set_id => l_adr_flex_value_set_id
28992 , p_adr_code => 'FV_PYA_431002_ANTCIPATED'
28993 , p_adr_type_code => 'S'
28994 , p_component_type => l_component_type
28995 , p_component_code => l_component_code
28996 , p_component_type_code => l_component_type_code
28997 , p_component_appl_id => l_component_appl_id
28998 , p_amb_context_code => l_amb_context_code
28999 , p_entity_code => 'RELEASE'
29000 , p_event_class_code => 'RELEASE'
29001 , p_side => 'NA'
29002 );
29003
29004 END IF;
29005
29006 --
29007 --
29008 END IF;
29009 --
29010 -- Bug 4922099
29011 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29012 (NVL(l_enc_upg_option, 'N') = 'O')
29013 ) AND
29014 (l_bflow_method_code = 'PRIOR_ENTRY')
29015 )
29016 THEN
29017 IF
29018 --
29019 1 = 2
29020 --
29021 THEN
29022 xla_accounting_err_pkg.build_message
29023 (p_appli_s_name => 'XLA'
29024 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29025 ,p_token_1 => 'LINE_NUMBER'
29029 l_component_type
29026 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29027 ,p_token_2 => 'LINE_TYPE_NAME'
29028 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29030 ,l_component_code
29031 ,l_component_type_code
29032 ,l_component_appl_id
29033 ,l_amb_context_code
29034 ,l_entity_code
29035 ,l_event_class_code
29036 )
29037 ,p_token_3 => 'OWNER'
29038 ,p_value_3 => xla_lookups_pkg.get_meaning(
29039 p_lookup_type => 'XLA_OWNER_TYPE'
29040 ,p_lookup_code => l_component_type_code
29041 )
29042 ,p_token_4 => 'PRODUCT_NAME'
29043 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29044 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29045 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29046 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29047 ,p_ae_header_id => NULL
29048 );
29049
29050 IF (C_LEVEL_ERROR>= g_log_level) THEN
29051 trace
29052 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29053 ,p_level => C_LEVEL_ERROR
29054 ,p_module => l_log_module);
29055 END IF;
29056 END IF;
29057 END IF;
29058 --
29059 --
29060 ------------------------------------------------------------------------------------------------
29061 -- 4219869 Business Flow
29062 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29063 -- Prior Entry. Currently, the following code is always generated.
29064 ------------------------------------------------------------------------------------------------
29065 XLA_AE_LINES_PKG.ValidateCurrentLine;
29066
29067 ------------------------------------------------------------------------------------
29068 -- 4219869 Business Flow
29069 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29070 ------------------------------------------------------------------------------------
29071 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29072
29073 ----------------------------------------------------------------------------------
29074 -- 4219869 Business Flow
29075 -- Update journal entry status -- Need to generate this within IF <condition>
29076 ----------------------------------------------------------------------------------
29077 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29078 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29079 ,p_balance_type_code => l_balance_type_code
29080 );
29081
29082 -------------------------------------------------------------------------------------------
29083 -- 4262811 - Generate the Accrual Reversal lines
29084 -------------------------------------------------------------------------------------------
29085 BEGIN
29086 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29087 (g_array_event(p_event_id).array_value_num('header_index'));
29088 IF l_acc_rev_flag IS NULL THEN
29089 l_acc_rev_flag := 'N';
29090 END IF;
29091 EXCEPTION
29092 WHEN OTHERS THEN
29093 l_acc_rev_flag := 'N';
29094 END;
29095 --
29096 IF (l_acc_rev_flag = 'Y') THEN
29097
29098 -- 4645092 ------------------------------------------------------------------------------
29099 -- To allow MPA report to determine if it should generate report process
29100 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29101 ------------------------------------------------------------------------------------------
29102
29103 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29104 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29105
29106 --
29107 -- Update the line information that should be overwritten
29108 --
29109 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29110 p_header_num => 1);
29111 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29112
29113 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29114
29115 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29116 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29117 END IF;
29118
29119 --
29123 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29120 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29121 --
29122 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29124 ELSE
29125 ---------------------------------------------------------------------------------------------------
29126 -- 4262811a Switch Sign
29127 ---------------------------------------------------------------------------------------------------
29128 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29129 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29130 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29131 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29132 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29133 -- 5132302
29134 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29135 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29136
29137 END IF;
29138
29139 -- 4955764
29140 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29141 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29142
29143
29144 XLA_AE_LINES_PKG.ValidateCurrentLine;
29145 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29146
29147 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29148 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29149 ,p_balance_type_code => l_balance_type_code);
29150
29151 END IF;
29152
29153 -----------------------------------------------------------------------------------------
29154 -- 4262811 Multiperiod Accounting
29155 -----------------------------------------------------------------------------------------
29156 -- No MPA option is assigned.
29157
29158
29159 END IF;
29160 END IF;
29161 --
29162
29163 --
29164 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29165 trace
29166 (p_msg => 'END of AcctLineType_56'
29167 ,p_level => C_LEVEL_PROCEDURE
29168 ,p_module => l_log_module);
29169 END IF;
29170 --
29171 EXCEPTION
29172 WHEN xla_exceptions_pkg.application_exception THEN
29173 RAISE;
29174 WHEN OTHERS THEN
29175 xla_exceptions_pkg.raise_message
29176 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_56');
29177 END AcctLineType_56;
29178 --
29179
29180 ---------------------------------------
29181 --
29182 -- PRIVATE FUNCTION
29183 -- AcctLineType_57
29184 --
29185 ---------------------------------------
29186 PROCEDURE AcctLineType_57 (
29187 p_application_id IN NUMBER
29188 ,p_event_id IN NUMBER
29189 ,p_calculate_acctd_flag IN VARCHAR2
29190 ,p_calculate_g_l_flag IN VARCHAR2
29191 ,p_actual_flag IN OUT VARCHAR2
29192 ,p_balance_type_code OUT VARCHAR2
29193 ,p_gain_or_loss_ref OUT VARCHAR2
29194
29195 --Journal entry Line Description
29196 , p_source_3 IN VARCHAR2
29197 --Federal Fund Expired Status
29198 , p_source_8 IN VARCHAR2
29199 --Budget Account
29200 , p_source_9 IN NUMBER
29201 --Federal Prior Year Flag
29202 , p_source_10 IN VARCHAR2
29203 --Federal Net Pya Adj Amt
29204 , p_source_11 IN NUMBER
29205 --Main Or Backing Code
29206 , p_source_13 IN VARCHAR2
29207 --Accounting Reversal Flag
29208 , p_source_15 IN VARCHAR2
29209 --Distribution Link Type
29210 , p_source_17 IN VARCHAR2
29211 --PO Distribution Identifier
29212 , p_source_19 IN NUMBER
29213 --Applied To Application Identifier
29214 , p_source_21 IN NUMBER
29215 --Applied To Distribution Link Type
29216 , p_source_22 IN VARCHAR2
29217 --Applied To Entity Code
29218 , p_source_23 IN VARCHAR2
29219 --Applied To Distribution Identifier 1
29220 , p_source_24 IN NUMBER
29221 --Applied To Header Identifier 1
29222 , p_source_25 IN NUMBER
29223 --Entered Amount
29224 , p_source_26 IN NUMBER
29225 --Currency Code
29226 , p_source_27 IN VARCHAR2
29227 --Accounted Amount
29228 , p_source_28 IN NUMBER
29229 --PO Encumbrance Upgrade Option
29230 , p_source_29 IN VARCHAR2
29231 --Federal Unanticipated Amt
29232 , p_source_30 IN NUMBER
29233 --PO Upgrade Encumbrance Type Identifier
29234 , p_source_32 IN NUMBER
29235 --Currency Conversion Date
29236 , p_source_35 IN DATE
29237 --Currency Conversion Rate
29238 , p_source_36 IN NUMBER
29239 --Currency Conversion Type
29240 , p_source_37 IN VARCHAR2
29241 --Federal Anticipated Amt
29242 , p_source_39 IN NUMBER
29243 --PO Release Identifier
29244 , p_source_41 IN NUMBER
29245 )
29246 IS
29247
29248 l_component_type VARCHAR2(80);
29249 l_component_code VARCHAR2(30);
29250 l_component_type_code VARCHAR2(1);
29251 l_component_appl_id INTEGER;
29255 l_ae_header_id NUMBER;
29252 l_amb_context_code VARCHAR2(30);
29253 l_entity_code VARCHAR2(30);
29254 l_event_class_code VARCHAR2(30);
29256 l_event_type_code VARCHAR2(30);
29257 l_line_definition_code VARCHAR2(30);
29258 l_line_definition_owner_code VARCHAR2(1);
29259 --
29260 -- adr variables
29261 l_segment VARCHAR2(30);
29262 l_ccid NUMBER;
29263 l_adr_transaction_coa_id NUMBER;
29264 l_adr_accounting_coa_id NUMBER;
29265 l_adr_flexfield_segment_code VARCHAR2(30);
29266 l_adr_flex_value_set_id NUMBER;
29267 l_adr_value_type_code VARCHAR2(30);
29268 l_adr_value_combination_id NUMBER;
29269 l_adr_value_segment_code VARCHAR2(30);
29270
29271 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29272 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29273 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29274 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29275
29276 -- 4262811 Variables ------------------------------------------------------------------------------------------
29277 l_entered_amt_idx NUMBER;
29278 l_accted_amt_idx NUMBER;
29279 l_acc_rev_flag VARCHAR2(1);
29280 l_accrual_line_num NUMBER;
29281 l_tmp_amt NUMBER;
29282 l_acc_rev_natural_side_code VARCHAR2(1);
29283
29284 l_num_entries NUMBER;
29285 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29286 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29287 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29288 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29289 l_recog_line_1 NUMBER;
29290 l_recog_line_2 NUMBER;
29291
29292 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29293 l_bflow_applied_to_amt NUMBER; -- 5132302
29294 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29295
29296 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29297
29298 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29299 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29300
29301 ---------------------------------------------------------------------------------------------------------------
29302
29303
29304 --
29305 -- bulk performance
29306 --
29307 l_balance_type_code VARCHAR2(1);
29308 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29309 l_log_module VARCHAR2(240);
29310
29311 --
29312 -- Upgrade strategy
29313 --
29314 l_actual_upg_option VARCHAR2(1);
29315 l_enc_upg_option VARCHAR2(1);
29316
29317 --
29318 BEGIN
29319 --
29320 IF g_log_enabled THEN
29321 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
29322 END IF;
29323 --
29324 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29325
29326 trace
29327 (p_msg => 'BEGIN of AcctLineType_57'
29328 ,p_level => C_LEVEL_PROCEDURE
29329 ,p_module => l_log_module);
29330
29331 END IF;
29332 --
29333 l_component_type := 'AMB_JLT';
29334 l_component_code := 'FV_REL_PYA_DW_UNANTICIPATED_CR';
29335 l_component_type_code := 'S';
29336 l_component_appl_id := 201;
29337 l_amb_context_code := 'DEFAULT';
29338 l_entity_code := 'RELEASE';
29339 l_event_class_code := 'RELEASE';
29340 l_event_type_code := 'RELEASE_ALL';
29341 l_line_definition_owner_code := 'S';
29342 l_line_definition_code := 'FV_RELEASE_ALL';
29343 --
29344 l_balance_type_code := 'A';
29345 l_segment := NULL;
29346 l_ccid := NULL;
29347 l_adr_transaction_coa_id := NULL;
29348 l_adr_accounting_coa_id := NULL;
29349 l_adr_flexfield_segment_code := NULL;
29350 l_adr_flex_value_set_id := NULL;
29351 l_adr_value_type_code := NULL;
29352 l_adr_value_combination_id := NULL;
29353 l_adr_value_segment_code := NULL;
29354
29355 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
29356 l_bflow_class_code := ''; -- 4219869 Business Flow
29357 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29358 l_budgetary_control_flag := 'Y';
29359
29360 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29361 l_bflow_applied_to_amt := NULL; -- 5132302
29362 l_entered_amt_idx := NULL; -- 4262811
29363 l_accted_amt_idx := NULL; -- 4262811
29364 l_acc_rev_flag := NULL; -- 4262811
29365 l_accrual_line_num := NULL; -- 4262811
29366 l_tmp_amt := NULL; -- 4262811
29367 --
29368
29369 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29370 l_balance_type_code <> 'B' THEN
29371 IF NVL(
29372 xla_ae_sources_pkg.GetSystemSourceChar(
29373 p_source_code => 'XLA_EVENT_TYPE_CODE'
29374 , p_source_type_code => 'Y'
29375 , p_source_application_id => 602
29376 ),'
29377 ') = 'RELEASE_RESERVED' AND
29378 NVL(p_source_13,'
29379 ') = 'M' AND
29380 NVL(p_source_10,'
29381 ') = 'Y' AND
29382 p_source_11 < 0 AND
29383 NVL(p_source_39,9E125) <> 0 AND
29384 p_source_39 IS NOT NULL
29385 THEN
29386
29387 --
29388 XLA_AE_LINES_PKG.SetNewLine;
29389
29390 p_balance_type_code := l_balance_type_code;
29391 -- set the flag so later we will know whether the gain loss line needs to be created
29392
29393 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29394 p_actual_flag :='A';
29395 END IF;
29396
29397 --
29398 -- bulk performance
29399 --
29400 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29401 p_header_num => 0); -- 4262811
29402 --
29403 -- set accounting line options
29404 --
29405 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29406 p_natural_side_code => 'C'
29407 , p_gain_or_loss_flag => 'N'
29408 , p_gl_transfer_mode_code => 'S'
29409 , p_acct_entry_type_code => 'A'
29410 , p_switch_side_flag => 'Y'
29411 , p_merge_duplicate_code => 'N'
29412 );
29413 --
29414 l_acc_rev_natural_side_code := 'D'; -- 4262811
29415 --
29416 --
29417 -- set accounting line type info
29418 --
29419 xla_ae_lines_pkg.SetAcctLineType
29420 (p_component_type => l_component_type
29421 ,p_event_type_code => l_event_type_code
29422 ,p_line_definition_owner_code => l_line_definition_owner_code
29423 ,p_line_definition_code => l_line_definition_code
29424 ,p_accounting_line_code => l_component_code
29425 ,p_accounting_line_type_code => l_component_type_code
29426 ,p_accounting_line_appl_id => l_component_appl_id
29427 ,p_amb_context_code => l_amb_context_code
29428 ,p_entity_code => l_entity_code
29429 ,p_event_class_code => l_event_class_code);
29430 --
29431 -- set accounting class
29432 --
29433 xla_ae_lines_pkg.SetAcctClass(
29434 p_accounting_class_code => 'PURCHASE_ORDER'
29435 , p_ae_header_id => l_ae_header_id
29436 );
29437
29438 --
29439 -- set rounding class
29440 --
29441 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29442 'PURCHASE_ORDER';
29443
29444 --
29445 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29446 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29447 --
29448 -- bulk performance
29449 --
29450 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29451
29452 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29453 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29454
29455 -- 4955764
29456 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29457 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29458
29459 -- 4458381 Public Sector Enh
29460
29461 --
29462 -- set accounting attributes for the line type
29463 --
29464 l_entered_amt_idx := 23;
29465 l_accted_amt_idx := 28;
29466 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29467 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29468 l_rec_acct_attrs.array_char_value(1) := p_source_15;
29469 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
29470 l_rec_acct_attrs.array_num_value(2) :=
29471 xla_ae_sources_pkg.GetSystemSourceNum(
29472 p_source_code => 'XLA_EVENT_APPL_ID'
29473 , p_source_type_code => 'Y'
29474 , p_source_application_id => 602
29475 );
29476 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
29477 l_rec_acct_attrs.array_char_value(3) := p_source_17;
29478 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
29479 l_rec_acct_attrs.array_char_value(4) :=
29480 xla_ae_sources_pkg.GetSystemSourceChar(
29481 p_source_code => 'XLA_ENTITY_CODE'
29482 , p_source_type_code => 'Y'
29483 , p_source_application_id => 602
29484 );
29485 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
29486 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
29487 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
29488 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
29489 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
29490 l_rec_acct_attrs.array_num_value(7) := p_source_21;
29491 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29495 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
29492 l_rec_acct_attrs.array_char_value(8) := p_source_22;
29493 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
29494 l_rec_acct_attrs.array_char_value(9) := p_source_23;
29496 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
29497 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29498 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
29499 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
29500 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
29501 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
29502 l_rec_acct_attrs.array_char_value(13) := p_source_17;
29503 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
29504 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
29505 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
29506 l_rec_acct_attrs.array_num_value(15) := p_source_26;
29507 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
29508 l_rec_acct_attrs.array_char_value(16) := p_source_27;
29509 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
29510 l_rec_acct_attrs.array_num_value(17) := p_source_28;
29511 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
29512 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
29513 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
29514 l_rec_acct_attrs.array_num_value(19) := p_source_26;
29515 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
29516 l_rec_acct_attrs.array_char_value(20) := p_source_27;
29517 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
29518 l_rec_acct_attrs.array_num_value(21) := p_source_28;
29519 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
29520 l_rec_acct_attrs.array_char_value(22) := p_source_29;
29521 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
29522 l_rec_acct_attrs.array_num_value(23) := p_source_30;
29523 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
29524 l_rec_acct_attrs.array_char_value(24) := p_source_27;
29525 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
29526 l_rec_acct_attrs.array_date_value(25) := p_source_35;
29527 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
29528 l_rec_acct_attrs.array_num_value(26) := p_source_36;
29529 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
29530 l_rec_acct_attrs.array_char_value(27) := p_source_37;
29531 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
29532 l_rec_acct_attrs.array_num_value(28) := p_source_30;
29533 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
29534 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
29535 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
29536 l_rec_acct_attrs.array_char_value(30) := p_source_22;
29537 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
29538 l_rec_acct_attrs.array_num_value(31) := p_source_32;
29539 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
29540 l_rec_acct_attrs.array_num_value(32) := p_source_32;
29541
29542 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29543 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29544
29545 ---------------------------------------------------------------------------------------------------------------
29546 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29547 ---------------------------------------------------------------------------------------------------------------
29548 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29549
29550 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29551 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29552
29553 IF xla_accounting_cache_pkg.GetValueChar
29554 (p_source_code => 'LEDGER_CATEGORY_CODE'
29555 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29556 AND l_bflow_method_code = 'PRIOR_ENTRY'
29557 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29558 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29559 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29560 )
29561 THEN
29562 xla_ae_lines_pkg.BflowUpgEntry
29563 (p_business_method_code => l_bflow_method_code
29564 ,p_business_class_code => l_bflow_class_code
29565 ,p_balance_type => l_balance_type_code);
29566 ELSE
29567 NULL;
29568 -- No business flow processing for business flow method of NONE.
29569 END IF;
29570
29571 --
29572 -- call analytical criteria
29573 --
29574
29575 --
29576 -- call description
29577 --
29578
29579 xla_ae_lines_pkg.SetLineDescription(
29580 p_ae_header_id => l_ae_header_id
29581 ,p_description => Description_2 (
29582 p_application_id => p_application_id
29583 , p_ae_header_id => l_ae_header_id
29584 , p_source_3 => p_source_3
29585 )
29586 );
29587
29588
29589 --
29590 -- call ADRs
29591 -- Bug 4922099
29592 --
29593 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29594 (NVL(l_actual_upg_option, 'N') = 'O') OR
29595 (NVL(l_enc_upg_option, 'N') = 'O')
29596 )
29600 --
29597 THEN
29598 NULL;
29599 --
29601
29602 l_ccid := AcctDerRule_9(
29603 p_application_id => p_application_id
29604 , p_ae_header_id => l_ae_header_id
29605 , p_source_9 => p_source_9
29606 , x_transaction_coa_id => l_adr_transaction_coa_id
29607 , x_accounting_coa_id => l_adr_accounting_coa_id
29608 , x_value_type_code => l_adr_value_type_code
29609 , p_side => 'NA'
29610 );
29611
29612 xla_ae_lines_pkg.set_ccid(
29613 p_code_combination_id => l_ccid
29614 , p_value_type_code => l_adr_value_type_code
29615 , p_transaction_coa_id => l_adr_transaction_coa_id
29616 , p_accounting_coa_id => l_adr_accounting_coa_id
29617 , p_adr_code => 'FV_ACCOUNT_RULE'
29618 , p_adr_type_code => 'S'
29619 , p_component_type => l_component_type
29620 , p_component_code => l_component_code
29621 , p_component_type_code => l_component_type_code
29622 , p_component_appl_id => l_component_appl_id
29623 , p_amb_context_code => l_amb_context_code
29624 , p_side => 'NA'
29625 );
29626
29627
29628 l_segment := AcctDerRule_11(
29629 p_application_id => p_application_id
29630 , p_ae_header_id => l_ae_header_id
29631 , p_source_8 => p_source_8
29632 , x_transaction_coa_id => l_adr_transaction_coa_id
29633 , x_accounting_coa_id => l_adr_accounting_coa_id
29634 , x_flexfield_segment_code => l_adr_flexfield_segment_code
29635 , x_flex_value_set_id => l_adr_flex_value_set_id
29636 , x_value_type_code => l_adr_value_type_code
29637 , x_value_combination_id => l_adr_value_combination_id
29638 , x_value_segment_code => l_adr_value_segment_code
29639 , p_side => 'NA'
29640 , p_override_seg_flag => 'Y'
29641 );
29642
29643 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
29644
29645 xla_ae_lines_pkg.set_segment(
29646 p_to_segment_code => 'GL_ACCOUNT'
29647 , p_segment_value => l_segment
29648 , p_from_segment_code => l_adr_value_segment_code
29649 , p_from_combination_id => l_adr_value_combination_id
29650 , p_value_type_code => l_adr_value_type_code
29651 , p_transaction_coa_id => l_adr_transaction_coa_id
29652 , p_accounting_coa_id => l_adr_accounting_coa_id
29653 , p_flexfield_segment_code => l_adr_flexfield_segment_code
29654 , p_flex_value_set_id => l_adr_flex_value_set_id
29655 , p_adr_code => 'FV_PYA_445002_UNANTICIPATED'
29656 , p_adr_type_code => 'S'
29657 , p_component_type => l_component_type
29658 , p_component_code => l_component_code
29659 , p_component_type_code => l_component_type_code
29660 , p_component_appl_id => l_component_appl_id
29661 , p_amb_context_code => l_amb_context_code
29662 , p_entity_code => 'RELEASE'
29663 , p_event_class_code => 'RELEASE'
29664 , p_side => 'NA'
29665 );
29666
29667 END IF;
29668
29669 --
29670 --
29671 END IF;
29672 --
29673 -- Bug 4922099
29674 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29675 (NVL(l_enc_upg_option, 'N') = 'O')
29676 ) AND
29677 (l_bflow_method_code = 'PRIOR_ENTRY')
29678 )
29679 THEN
29680 IF
29681 --
29682 1 = 2
29683 --
29684 THEN
29685 xla_accounting_err_pkg.build_message
29686 (p_appli_s_name => 'XLA'
29687 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29688 ,p_token_1 => 'LINE_NUMBER'
29689 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29690 ,p_token_2 => 'LINE_TYPE_NAME'
29691 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29692 l_component_type
29693 ,l_component_code
29694 ,l_component_type_code
29695 ,l_component_appl_id
29696 ,l_amb_context_code
29697 ,l_entity_code
29698 ,l_event_class_code
29699 )
29700 ,p_token_3 => 'OWNER'
29701 ,p_value_3 => xla_lookups_pkg.get_meaning(
29702 p_lookup_type => 'XLA_OWNER_TYPE'
29703 ,p_lookup_code => l_component_type_code
29704 )
29705 ,p_token_4 => 'PRODUCT_NAME'
29706 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29707 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29708 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29709 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29710 ,p_ae_header_id => NULL
29711 );
29712
29713 IF (C_LEVEL_ERROR>= g_log_level) THEN
29714 trace
29715 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29716 ,p_level => C_LEVEL_ERROR
29717 ,p_module => l_log_module);
29718 END IF;
29719 END IF;
29720 END IF;
29721 --
29722 --
29723 ------------------------------------------------------------------------------------------------
29724 -- 4219869 Business Flow
29725 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29726 -- Prior Entry. Currently, the following code is always generated.
29727 ------------------------------------------------------------------------------------------------
29728 XLA_AE_LINES_PKG.ValidateCurrentLine;
29729
29730 ------------------------------------------------------------------------------------
29731 -- 4219869 Business Flow
29732 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29733 ------------------------------------------------------------------------------------
29734 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29735
29736 ----------------------------------------------------------------------------------
29737 -- 4219869 Business Flow
29738 -- Update journal entry status -- Need to generate this within IF <condition>
29739 ----------------------------------------------------------------------------------
29740 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29741 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29742 ,p_balance_type_code => l_balance_type_code
29743 );
29744
29745 -------------------------------------------------------------------------------------------
29746 -- 4262811 - Generate the Accrual Reversal lines
29747 -------------------------------------------------------------------------------------------
29748 BEGIN
29749 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29750 (g_array_event(p_event_id).array_value_num('header_index'));
29751 IF l_acc_rev_flag IS NULL THEN
29752 l_acc_rev_flag := 'N';
29753 END IF;
29754 EXCEPTION
29755 WHEN OTHERS THEN
29756 l_acc_rev_flag := 'N';
29757 END;
29758 --
29759 IF (l_acc_rev_flag = 'Y') THEN
29760
29761 -- 4645092 ------------------------------------------------------------------------------
29762 -- To allow MPA report to determine if it should generate report process
29763 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29764 ------------------------------------------------------------------------------------------
29765
29766 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29767 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29768
29769 --
29770 -- Update the line information that should be overwritten
29771 --
29772 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29773 p_header_num => 1);
29774 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29775
29776 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29777
29778 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29779 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29780 END IF;
29781
29782 --
29783 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29784 --
29785 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29786 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29787 ELSE
29788 ---------------------------------------------------------------------------------------------------
29789 -- 4262811a Switch Sign
29790 ---------------------------------------------------------------------------------------------------
29791 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29792 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29793 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29794 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29795 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29796 -- 5132302
29797 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29798 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29799
29800 END IF;
29801
29802 -- 4955764
29803 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29804 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29805
29806
29807 XLA_AE_LINES_PKG.ValidateCurrentLine;
29808 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29809
29810 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29811 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29812 ,p_balance_type_code => l_balance_type_code);
29813
29814 END IF;
29815
29816 -----------------------------------------------------------------------------------------
29817 -- 4262811 Multiperiod Accounting
29818 -----------------------------------------------------------------------------------------
29819 -- No MPA option is assigned.
29820
29821
29822 END IF;
29823 END IF;
29824 --
29825
29826 --
29827 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29828 trace
29829 (p_msg => 'END of AcctLineType_57'
29830 ,p_level => C_LEVEL_PROCEDURE
29831 ,p_module => l_log_module);
29832 END IF;
29833 --
29834 EXCEPTION
29835 WHEN xla_exceptions_pkg.application_exception THEN
29836 RAISE;
29837 WHEN OTHERS THEN
29838 xla_exceptions_pkg.raise_message
29839 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_57');
29840 END AcctLineType_57;
29841 --
29842
29843 ---------------------------------------
29844 --
29845 -- PRIVATE FUNCTION
29846 -- AcctLineType_58
29847 --
29848 ---------------------------------------
29849 PROCEDURE AcctLineType_58 (
29850 p_application_id IN NUMBER
29851 ,p_event_id IN NUMBER
29852 ,p_calculate_acctd_flag IN VARCHAR2
29853 ,p_calculate_g_l_flag IN VARCHAR2
29854 ,p_actual_flag IN OUT VARCHAR2
29855 ,p_balance_type_code OUT VARCHAR2
29856 ,p_gain_or_loss_ref OUT VARCHAR2
29857
29858 --Journal entry Line Description
29859 , p_source_3 IN VARCHAR2
29860 --Federal Fund Category
29861 , p_source_7 IN VARCHAR2
29862 --Federal Fund Expired Status
29863 , p_source_8 IN VARCHAR2
29864 --Budget Account
29865 , p_source_9 IN NUMBER
29866 --Federal Prior Year Flag
29867 , p_source_10 IN VARCHAR2
29868 --Federal Net Pya Adj Amt
29869 , p_source_11 IN NUMBER
29870 --Main Or Backing Code
29871 , p_source_13 IN VARCHAR2
29872 --Accounting Reversal Flag
29873 , p_source_15 IN VARCHAR2
29874 --Distribution Link Type
29875 , p_source_17 IN VARCHAR2
29876 --PO Distribution Identifier
29880 --Applied To Distribution Link Type
29877 , p_source_19 IN NUMBER
29878 --Applied To Application Identifier
29879 , p_source_21 IN NUMBER
29881 , p_source_22 IN VARCHAR2
29882 --Applied To Entity Code
29883 , p_source_23 IN VARCHAR2
29884 --Applied To Distribution Identifier 1
29885 , p_source_24 IN NUMBER
29886 --Applied To Header Identifier 1
29887 , p_source_25 IN NUMBER
29888 --Entered Amount
29889 , p_source_26 IN NUMBER
29890 --Currency Code
29891 , p_source_27 IN VARCHAR2
29892 --Accounted Amount
29893 , p_source_28 IN NUMBER
29894 --PO Encumbrance Upgrade Option
29895 , p_source_29 IN VARCHAR2
29896 --PO Upgrade Encumbrance Type Identifier
29897 , p_source_32 IN NUMBER
29898 --Currency Conversion Date
29899 , p_source_35 IN DATE
29900 --Currency Conversion Rate
29901 , p_source_36 IN NUMBER
29902 --Currency Conversion Type
29903 , p_source_37 IN VARCHAR2
29904 --PO Release Identifier
29905 , p_source_41 IN NUMBER
29906 )
29907 IS
29908
29909 l_component_type VARCHAR2(80);
29910 l_component_code VARCHAR2(30);
29911 l_component_type_code VARCHAR2(1);
29912 l_component_appl_id INTEGER;
29913 l_amb_context_code VARCHAR2(30);
29914 l_entity_code VARCHAR2(30);
29915 l_event_class_code VARCHAR2(30);
29916 l_ae_header_id NUMBER;
29917 l_event_type_code VARCHAR2(30);
29918 l_line_definition_code VARCHAR2(30);
29919 l_line_definition_owner_code VARCHAR2(1);
29920 --
29921 -- adr variables
29922 l_segment VARCHAR2(30);
29923 l_ccid NUMBER;
29924 l_adr_transaction_coa_id NUMBER;
29925 l_adr_accounting_coa_id NUMBER;
29926 l_adr_flexfield_segment_code VARCHAR2(30);
29927 l_adr_flex_value_set_id NUMBER;
29928 l_adr_value_type_code VARCHAR2(30);
29929 l_adr_value_combination_id NUMBER;
29930 l_adr_value_segment_code VARCHAR2(30);
29931
29932 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29933 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29934 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29935 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29936
29937 -- 4262811 Variables ------------------------------------------------------------------------------------------
29938 l_entered_amt_idx NUMBER;
29939 l_accted_amt_idx NUMBER;
29940 l_acc_rev_flag VARCHAR2(1);
29941 l_accrual_line_num NUMBER;
29942 l_tmp_amt NUMBER;
29943 l_acc_rev_natural_side_code VARCHAR2(1);
29944
29945 l_num_entries NUMBER;
29946 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29947 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29948 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29949 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29950 l_recog_line_1 NUMBER;
29951 l_recog_line_2 NUMBER;
29952
29953 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29954 l_bflow_applied_to_amt NUMBER; -- 5132302
29955 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29956
29957 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29958
29959 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29960 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29961
29962 ---------------------------------------------------------------------------------------------------------------
29963
29964
29965 --
29966 -- bulk performance
29967 --
29968 l_balance_type_code VARCHAR2(1);
29969 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29970 l_log_module VARCHAR2(240);
29971
29972 --
29973 -- Upgrade strategy
29974 --
29975 l_actual_upg_option VARCHAR2(1);
29976 l_enc_upg_option VARCHAR2(1);
29977
29978 --
29979 BEGIN
29980 --
29981 IF g_log_enabled THEN
29982 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
29983 END IF;
29984 --
29985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29986
29987 trace
29988 (p_msg => 'BEGIN of AcctLineType_58'
29989 ,p_level => C_LEVEL_PROCEDURE
29990 ,p_module => l_log_module);
29991
29992 END IF;
29993 --
29994 l_component_type := 'AMB_JLT';
29995 l_component_code := 'FV_REL_PYA_FINAL_CLOSE_CR';
29996 l_component_type_code := 'S';
29997 l_component_appl_id := 201;
29998 l_amb_context_code := 'DEFAULT';
29999 l_entity_code := 'RELEASE';
30000 l_event_class_code := 'RELEASE';
30001 l_event_type_code := 'RELEASE_ALL';
30002 l_line_definition_owner_code := 'S';
30003 l_line_definition_code := 'FV_RELEASE_ALL';
30004 --
30005 l_balance_type_code := 'A';
30006 l_segment := NULL;
30007 l_ccid := NULL;
30008 l_adr_transaction_coa_id := NULL;
30009 l_adr_accounting_coa_id := NULL;
30010 l_adr_flexfield_segment_code := NULL;
30011 l_adr_flex_value_set_id := NULL;
30012 l_adr_value_type_code := NULL;
30013 l_adr_value_combination_id := NULL;
30014 l_adr_value_segment_code := NULL;
30015
30016 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30017 l_bflow_class_code := ''; -- 4219869 Business Flow
30018 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30019 l_budgetary_control_flag := 'Y';
30020
30021 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30022 l_bflow_applied_to_amt := NULL; -- 5132302
30023 l_entered_amt_idx := NULL; -- 4262811
30024 l_accted_amt_idx := NULL; -- 4262811
30025 l_acc_rev_flag := NULL; -- 4262811
30026 l_accrual_line_num := NULL; -- 4262811
30027 l_tmp_amt := NULL; -- 4262811
30028 --
30029
30030 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30031 l_balance_type_code <> 'B' THEN
30032 IF NVL(
30033 xla_ae_sources_pkg.GetSystemSourceChar(
30034 p_source_code => 'XLA_EVENT_TYPE_CODE'
30035 , p_source_type_code => 'Y'
30036 , p_source_application_id => 602
30037 ),'
30038 ') = 'RELEASE_FINAL_CLOSED' AND
30039 NVL(p_source_13,'
30040 ') = 'M' AND
30041 NVL(p_source_10,'
30042 ') = 'Y'
30043 THEN
30044
30045 --
30046 XLA_AE_LINES_PKG.SetNewLine;
30047
30048 p_balance_type_code := l_balance_type_code;
30049 -- set the flag so later we will know whether the gain loss line needs to be created
30050
30051 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30052 p_actual_flag :='A';
30053 END IF;
30054
30055 --
30056 -- bulk performance
30057 --
30058 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30059 p_header_num => 0); -- 4262811
30060 --
30061 -- set accounting line options
30062 --
30063 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30064 p_natural_side_code => 'C'
30065 , p_gain_or_loss_flag => 'N'
30066 , p_gl_transfer_mode_code => 'S'
30067 , p_acct_entry_type_code => 'A'
30068 , p_switch_side_flag => 'N'
30069 , p_merge_duplicate_code => 'N'
30070 );
30071 --
30072 l_acc_rev_natural_side_code := 'D'; -- 4262811
30073 --
30074 --
30075 -- set accounting line type info
30076 --
30077 xla_ae_lines_pkg.SetAcctLineType
30078 (p_component_type => l_component_type
30079 ,p_event_type_code => l_event_type_code
30080 ,p_line_definition_owner_code => l_line_definition_owner_code
30081 ,p_line_definition_code => l_line_definition_code
30082 ,p_accounting_line_code => l_component_code
30083 ,p_accounting_line_type_code => l_component_type_code
30084 ,p_accounting_line_appl_id => l_component_appl_id
30085 ,p_amb_context_code => l_amb_context_code
30086 ,p_entity_code => l_entity_code
30087 ,p_event_class_code => l_event_class_code);
30088 --
30089 -- set accounting class
30090 --
30091 xla_ae_lines_pkg.SetAcctClass(
30092 p_accounting_class_code => 'PURCHASE_ORDER'
30093 , p_ae_header_id => l_ae_header_id
30094 );
30095
30096 --
30097 -- set rounding class
30098 --
30099 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30100 'PURCHASE_ORDER';
30101
30102 --
30103 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30104 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30105 --
30106 -- bulk performance
30107 --
30108 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30109
30110 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30111 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30112
30113 -- 4955764
30114 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30115 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30116
30117 -- 4458381 Public Sector Enh
30118
30119 --
30120 -- set accounting attributes for the line type
30121 --
30122 l_entered_amt_idx := 23;
30123 l_accted_amt_idx := 28;
30124 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30125 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30126 l_rec_acct_attrs.array_char_value(1) := p_source_15;
30127 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
30128 l_rec_acct_attrs.array_num_value(2) :=
30129 xla_ae_sources_pkg.GetSystemSourceNum(
30130 p_source_code => 'XLA_EVENT_APPL_ID'
30131 , p_source_type_code => 'Y'
30132 , p_source_application_id => 602
30133 );
30134 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
30135 l_rec_acct_attrs.array_char_value(3) := p_source_17;
30136 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
30137 l_rec_acct_attrs.array_char_value(4) :=
30138 xla_ae_sources_pkg.GetSystemSourceChar(
30139 p_source_code => 'XLA_ENTITY_CODE'
30140 , p_source_type_code => 'Y'
30141 , p_source_application_id => 602
30142 );
30143 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
30144 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
30145 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
30146 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
30147 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
30148 l_rec_acct_attrs.array_num_value(7) := p_source_21;
30149 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30150 l_rec_acct_attrs.array_char_value(8) := p_source_22;
30151 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
30152 l_rec_acct_attrs.array_char_value(9) := p_source_23;
30156 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
30153 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
30154 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
30155 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30157 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
30158 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
30159 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
30160 l_rec_acct_attrs.array_char_value(13) := p_source_17;
30161 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
30162 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
30163 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
30164 l_rec_acct_attrs.array_num_value(15) := p_source_26;
30165 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
30166 l_rec_acct_attrs.array_char_value(16) := p_source_27;
30167 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
30168 l_rec_acct_attrs.array_num_value(17) := p_source_28;
30169 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
30170 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
30171 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
30172 l_rec_acct_attrs.array_num_value(19) := p_source_26;
30173 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
30174 l_rec_acct_attrs.array_char_value(20) := p_source_27;
30175 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
30176 l_rec_acct_attrs.array_num_value(21) := p_source_28;
30177 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
30178 l_rec_acct_attrs.array_char_value(22) := p_source_29;
30179 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
30180 l_rec_acct_attrs.array_num_value(23) := p_source_26;
30181 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
30182 l_rec_acct_attrs.array_char_value(24) := p_source_27;
30183 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
30184 l_rec_acct_attrs.array_date_value(25) := p_source_35;
30185 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
30186 l_rec_acct_attrs.array_num_value(26) := p_source_36;
30187 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
30188 l_rec_acct_attrs.array_char_value(27) := p_source_37;
30189 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
30190 l_rec_acct_attrs.array_num_value(28) := p_source_28;
30191 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
30192 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
30193 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
30194 l_rec_acct_attrs.array_char_value(30) := p_source_22;
30195 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
30196 l_rec_acct_attrs.array_num_value(31) := p_source_32;
30197 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
30198 l_rec_acct_attrs.array_num_value(32) := p_source_32;
30199
30200 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30201 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30202
30203 ---------------------------------------------------------------------------------------------------------------
30204 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30205 ---------------------------------------------------------------------------------------------------------------
30206 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30207
30208 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30209 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30210
30211 IF xla_accounting_cache_pkg.GetValueChar
30212 (p_source_code => 'LEDGER_CATEGORY_CODE'
30213 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30214 AND l_bflow_method_code = 'PRIOR_ENTRY'
30215 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30216 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30217 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30218 )
30219 THEN
30220 xla_ae_lines_pkg.BflowUpgEntry
30221 (p_business_method_code => l_bflow_method_code
30222 ,p_business_class_code => l_bflow_class_code
30223 ,p_balance_type => l_balance_type_code);
30224 ELSE
30225 NULL;
30226 -- No business flow processing for business flow method of NONE.
30227 END IF;
30228
30229 --
30230 -- call analytical criteria
30231 --
30232
30233 --
30234 -- call description
30235 --
30236
30237 xla_ae_lines_pkg.SetLineDescription(
30238 p_ae_header_id => l_ae_header_id
30239 ,p_description => Description_2 (
30240 p_application_id => p_application_id
30241 , p_ae_header_id => l_ae_header_id
30242 , p_source_3 => p_source_3
30243 )
30244 );
30245
30246
30247 --
30248 -- call ADRs
30249 -- Bug 4922099
30250 --
30251 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30252 (NVL(l_actual_upg_option, 'N') = 'O') OR
30253 (NVL(l_enc_upg_option, 'N') = 'O')
30254 )
30255 THEN
30256 NULL;
30257 --
30258 --
30259
30263 , p_source_9 => p_source_9
30260 l_ccid := AcctDerRule_9(
30261 p_application_id => p_application_id
30262 , p_ae_header_id => l_ae_header_id
30264 , x_transaction_coa_id => l_adr_transaction_coa_id
30265 , x_accounting_coa_id => l_adr_accounting_coa_id
30266 , x_value_type_code => l_adr_value_type_code
30267 , p_side => 'NA'
30268 );
30269
30270 xla_ae_lines_pkg.set_ccid(
30271 p_code_combination_id => l_ccid
30272 , p_value_type_code => l_adr_value_type_code
30273 , p_transaction_coa_id => l_adr_transaction_coa_id
30274 , p_accounting_coa_id => l_adr_accounting_coa_id
30275 , p_adr_code => 'FV_ACCOUNT_RULE'
30276 , p_adr_type_code => 'S'
30277 , p_component_type => l_component_type
30278 , p_component_code => l_component_code
30279 , p_component_type_code => l_component_type_code
30280 , p_component_appl_id => l_component_appl_id
30281 , p_amb_context_code => l_amb_context_code
30282 , p_side => 'NA'
30283 );
30284
30285
30286 l_segment := AcctDerRule_12(
30287 p_application_id => p_application_id
30288 , p_ae_header_id => l_ae_header_id
30289 , p_source_7 => p_source_7
30290 , p_source_8 => p_source_8
30291 , p_source_10 => p_source_10
30292 , p_source_11 => p_source_11
30293 , x_transaction_coa_id => l_adr_transaction_coa_id
30294 , x_accounting_coa_id => l_adr_accounting_coa_id
30295 , x_flexfield_segment_code => l_adr_flexfield_segment_code
30296 , x_flex_value_set_id => l_adr_flex_value_set_id
30297 , x_value_type_code => l_adr_value_type_code
30298 , x_value_combination_id => l_adr_value_combination_id
30299 , x_value_segment_code => l_adr_value_segment_code
30300 , p_side => 'NA'
30301 , p_override_seg_flag => 'Y'
30302 );
30303
30304 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
30305
30306 xla_ae_lines_pkg.set_segment(
30307 p_to_segment_code => 'GL_ACCOUNT'
30308 , p_segment_value => l_segment
30309 , p_from_segment_code => l_adr_value_segment_code
30310 , p_from_combination_id => l_adr_value_combination_id
30311 , p_value_type_code => l_adr_value_type_code
30312 , p_transaction_coa_id => l_adr_transaction_coa_id
30313 , p_accounting_coa_id => l_adr_accounting_coa_id
30314 , p_flexfield_segment_code => l_adr_flexfield_segment_code
30315 , p_flex_value_set_id => l_adr_flex_value_set_id
30316 , p_adr_code => 'FV_PYA_46X002_487101'
30317 , p_adr_type_code => 'S'
30318 , p_component_type => l_component_type
30319 , p_component_code => l_component_code
30320 , p_component_type_code => l_component_type_code
30321 , p_component_appl_id => l_component_appl_id
30322 , p_amb_context_code => l_amb_context_code
30323 , p_entity_code => 'RELEASE'
30324 , p_event_class_code => 'RELEASE'
30325 , p_side => 'NA'
30326 );
30327
30328 END IF;
30329
30330 --
30331 --
30332 END IF;
30333 --
30334 -- Bug 4922099
30335 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30336 (NVL(l_enc_upg_option, 'N') = 'O')
30337 ) AND
30338 (l_bflow_method_code = 'PRIOR_ENTRY')
30339 )
30340 THEN
30341 IF
30342 --
30343 1 = 2
30344 --
30345 THEN
30346 xla_accounting_err_pkg.build_message
30347 (p_appli_s_name => 'XLA'
30348 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30349 ,p_token_1 => 'LINE_NUMBER'
30350 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30351 ,p_token_2 => 'LINE_TYPE_NAME'
30352 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30353 l_component_type
30354 ,l_component_code
30355 ,l_component_type_code
30356 ,l_component_appl_id
30357 ,l_amb_context_code
30358 ,l_entity_code
30359 ,l_event_class_code
30360 )
30361 ,p_token_3 => 'OWNER'
30362 ,p_value_3 => xla_lookups_pkg.get_meaning(
30363 p_lookup_type => 'XLA_OWNER_TYPE'
30364 ,p_lookup_code => l_component_type_code
30365 )
30366 ,p_token_4 => 'PRODUCT_NAME'
30367 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30368 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30369 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30370 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30371 ,p_ae_header_id => NULL
30372 );
30373
30374 IF (C_LEVEL_ERROR>= g_log_level) THEN
30375 trace
30376 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30377 ,p_level => C_LEVEL_ERROR
30378 ,p_module => l_log_module);
30379 END IF;
30380 END IF;
30381 END IF;
30382 --
30383 --
30384 ------------------------------------------------------------------------------------------------
30385 -- 4219869 Business Flow
30386 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30387 -- Prior Entry. Currently, the following code is always generated.
30388 ------------------------------------------------------------------------------------------------
30389 XLA_AE_LINES_PKG.ValidateCurrentLine;
30390
30391 ------------------------------------------------------------------------------------
30392 -- 4219869 Business Flow
30393 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30394 ------------------------------------------------------------------------------------
30395 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30396
30397 ----------------------------------------------------------------------------------
30398 -- 4219869 Business Flow
30399 -- Update journal entry status -- Need to generate this within IF <condition>
30400 ----------------------------------------------------------------------------------
30401 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30402 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30403 ,p_balance_type_code => l_balance_type_code
30404 );
30405
30406 -------------------------------------------------------------------------------------------
30407 -- 4262811 - Generate the Accrual Reversal lines
30408 -------------------------------------------------------------------------------------------
30409 BEGIN
30410 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30411 (g_array_event(p_event_id).array_value_num('header_index'));
30412 IF l_acc_rev_flag IS NULL THEN
30413 l_acc_rev_flag := 'N';
30414 END IF;
30415 EXCEPTION
30416 WHEN OTHERS THEN
30417 l_acc_rev_flag := 'N';
30418 END;
30419 --
30420 IF (l_acc_rev_flag = 'Y') THEN
30421
30422 -- 4645092 ------------------------------------------------------------------------------
30423 -- To allow MPA report to determine if it should generate report process
30424 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30425 ------------------------------------------------------------------------------------------
30426
30427 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30428 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30429
30430 --
30431 -- Update the line information that should be overwritten
30432 --
30433 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30434 p_header_num => 1);
30435 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30436
30437 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30438
30439 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30440 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30441 END IF;
30442
30443 --
30444 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30445 --
30446 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30447 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30448 ELSE
30449 ---------------------------------------------------------------------------------------------------
30450 -- 4262811a Switch Sign
30451 ---------------------------------------------------------------------------------------------------
30452 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30453 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30454 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30455 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30456 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30457 -- 5132302
30458 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30459 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30460
30461 END IF;
30462
30463 -- 4955764
30464 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30465 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30466
30467
30468 XLA_AE_LINES_PKG.ValidateCurrentLine;
30472 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30469 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30470
30471 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30473 ,p_balance_type_code => l_balance_type_code);
30474
30475 END IF;
30476
30477 -----------------------------------------------------------------------------------------
30478 -- 4262811 Multiperiod Accounting
30479 -----------------------------------------------------------------------------------------
30480 -- No MPA option is assigned.
30481
30482
30483 END IF;
30484 END IF;
30485 --
30486
30487 --
30488 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30489 trace
30490 (p_msg => 'END of AcctLineType_58'
30491 ,p_level => C_LEVEL_PROCEDURE
30492 ,p_module => l_log_module);
30493 END IF;
30494 --
30495 EXCEPTION
30496 WHEN xla_exceptions_pkg.application_exception THEN
30497 RAISE;
30498 WHEN OTHERS THEN
30499 xla_exceptions_pkg.raise_message
30500 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_58');
30501 END AcctLineType_58;
30502 --
30503
30504 ---------------------------------------
30505 --
30506 -- PRIVATE FUNCTION
30507 -- AcctLineType_59
30508 --
30509 ---------------------------------------
30510 PROCEDURE AcctLineType_59 (
30511 p_application_id IN NUMBER
30512 ,p_event_id IN NUMBER
30513 ,p_calculate_acctd_flag IN VARCHAR2
30514 ,p_calculate_g_l_flag IN VARCHAR2
30515 ,p_actual_flag IN OUT VARCHAR2
30516 ,p_balance_type_code OUT VARCHAR2
30517 ,p_gain_or_loss_ref OUT VARCHAR2
30518
30519 --Journal entry Line Description
30520 , p_source_3 IN VARCHAR2
30521 --Federal Fund Expired Status
30522 , p_source_8 IN VARCHAR2
30523 --Budget Account
30524 , p_source_9 IN NUMBER
30525 --Federal Prior Year Flag
30526 , p_source_10 IN VARCHAR2
30527 --Main Or Backing Code
30528 , p_source_13 IN VARCHAR2
30529 --Accounting Reversal Flag
30530 , p_source_15 IN VARCHAR2
30531 --Distribution Link Type
30532 , p_source_17 IN VARCHAR2
30533 --PO Distribution Identifier
30534 , p_source_19 IN NUMBER
30535 --Applied To Application Identifier
30536 , p_source_21 IN NUMBER
30537 --Applied To Distribution Link Type
30538 , p_source_22 IN VARCHAR2
30539 --Applied To Entity Code
30540 , p_source_23 IN VARCHAR2
30541 --Applied To Distribution Identifier 1
30542 , p_source_24 IN NUMBER
30543 --Applied To Header Identifier 1
30544 , p_source_25 IN NUMBER
30545 --Entered Amount
30546 , p_source_26 IN NUMBER
30547 --Currency Code
30548 , p_source_27 IN VARCHAR2
30549 --Accounted Amount
30550 , p_source_28 IN NUMBER
30551 --PO Encumbrance Upgrade Option
30552 , p_source_29 IN VARCHAR2
30553 --PO Upgrade Encumbrance Type Identifier
30554 , p_source_32 IN NUMBER
30555 --Currency Conversion Date
30556 , p_source_35 IN DATE
30557 --Currency Conversion Rate
30558 , p_source_36 IN NUMBER
30559 --Currency Conversion Type
30560 , p_source_37 IN VARCHAR2
30561 --PO Release Identifier
30562 , p_source_41 IN NUMBER
30563 )
30564 IS
30565
30566 l_component_type VARCHAR2(80);
30567 l_component_code VARCHAR2(30);
30568 l_component_type_code VARCHAR2(1);
30569 l_component_appl_id INTEGER;
30570 l_amb_context_code VARCHAR2(30);
30571 l_entity_code VARCHAR2(30);
30572 l_event_class_code VARCHAR2(30);
30573 l_ae_header_id NUMBER;
30574 l_event_type_code VARCHAR2(30);
30575 l_line_definition_code VARCHAR2(30);
30576 l_line_definition_owner_code VARCHAR2(1);
30577 --
30578 -- adr variables
30579 l_segment VARCHAR2(30);
30580 l_ccid NUMBER;
30581 l_adr_transaction_coa_id NUMBER;
30582 l_adr_accounting_coa_id NUMBER;
30583 l_adr_flexfield_segment_code VARCHAR2(30);
30584 l_adr_flex_value_set_id NUMBER;
30585 l_adr_value_type_code VARCHAR2(30);
30586 l_adr_value_combination_id NUMBER;
30587 l_adr_value_segment_code VARCHAR2(30);
30588
30589 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30590 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30591 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30592 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30593
30594 -- 4262811 Variables ------------------------------------------------------------------------------------------
30595 l_entered_amt_idx NUMBER;
30596 l_accted_amt_idx NUMBER;
30597 l_acc_rev_flag VARCHAR2(1);
30598 l_accrual_line_num NUMBER;
30599 l_tmp_amt NUMBER;
30600 l_acc_rev_natural_side_code VARCHAR2(1);
30601
30602 l_num_entries NUMBER;
30603 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30604 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30605 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30606 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30607 l_recog_line_1 NUMBER;
30608 l_recog_line_2 NUMBER;
30609
30610 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30611 l_bflow_applied_to_amt NUMBER; -- 5132302
30612 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30613
30614 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30615
30616 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30617 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30618
30619 ---------------------------------------------------------------------------------------------------------------
30620
30621
30622 --
30623 -- bulk performance
30624 --
30625 l_balance_type_code VARCHAR2(1);
30626 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30627 l_log_module VARCHAR2(240);
30628
30629 --
30630 -- Upgrade strategy
30631 --
30632 l_actual_upg_option VARCHAR2(1);
30633 l_enc_upg_option VARCHAR2(1);
30634
30635 --
30636 BEGIN
30637 --
30638 IF g_log_enabled THEN
30639 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
30640 END IF;
30641 --
30642 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30643
30644 trace
30645 (p_msg => 'BEGIN of AcctLineType_59'
30646 ,p_level => C_LEVEL_PROCEDURE
30647 ,p_module => l_log_module);
30648
30649 END IF;
30650 --
30651 l_component_type := 'AMB_JLT';
30652 l_component_code := 'FV_REL_PYA_FINAL_CLOSE_DR';
30653 l_component_type_code := 'S';
30654 l_component_appl_id := 201;
30655 l_amb_context_code := 'DEFAULT';
30656 l_entity_code := 'RELEASE';
30657 l_event_class_code := 'RELEASE';
30658 l_event_type_code := 'RELEASE_ALL';
30659 l_line_definition_owner_code := 'S';
30660 l_line_definition_code := 'FV_RELEASE_ALL';
30661 --
30662 l_balance_type_code := 'A';
30663 l_segment := NULL;
30664 l_ccid := NULL;
30665 l_adr_transaction_coa_id := NULL;
30666 l_adr_accounting_coa_id := NULL;
30667 l_adr_flexfield_segment_code := NULL;
30668 l_adr_flex_value_set_id := NULL;
30669 l_adr_value_type_code := NULL;
30670 l_adr_value_combination_id := NULL;
30671 l_adr_value_segment_code := NULL;
30672
30673 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30674 l_bflow_class_code := ''; -- 4219869 Business Flow
30675 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30676 l_budgetary_control_flag := 'Y';
30677
30678 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30679 l_bflow_applied_to_amt := NULL; -- 5132302
30680 l_entered_amt_idx := NULL; -- 4262811
30681 l_accted_amt_idx := NULL; -- 4262811
30682 l_acc_rev_flag := NULL; -- 4262811
30683 l_accrual_line_num := NULL; -- 4262811
30684 l_tmp_amt := NULL; -- 4262811
30685 --
30686
30687 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30688 l_balance_type_code <> 'B' THEN
30689 IF NVL(
30690 xla_ae_sources_pkg.GetSystemSourceChar(
30691 p_source_code => 'XLA_EVENT_TYPE_CODE'
30692 , p_source_type_code => 'Y'
30693 , p_source_application_id => 602
30694 ),'
30695 ') = 'RELEASE_FINAL_CLOSED' AND
30696 NVL(p_source_13,'
30697 ') = 'M' AND
30698 NVL(p_source_10,'
30699 ') = 'Y'
30700 THEN
30701
30702 --
30703 XLA_AE_LINES_PKG.SetNewLine;
30704
30705 p_balance_type_code := l_balance_type_code;
30706 -- set the flag so later we will know whether the gain loss line needs to be created
30707
30708 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30709 p_actual_flag :='A';
30710 END IF;
30711
30712 --
30713 -- bulk performance
30714 --
30715 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30716 p_header_num => 0); -- 4262811
30717 --
30718 -- set accounting line options
30719 --
30720 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30721 p_natural_side_code => 'D'
30722 , p_gain_or_loss_flag => 'N'
30723 , p_gl_transfer_mode_code => 'S'
30724 , p_acct_entry_type_code => 'A'
30725 , p_switch_side_flag => 'N'
30726 , p_merge_duplicate_code => 'N'
30727 );
30728 --
30729 l_acc_rev_natural_side_code := 'C'; -- 4262811
30730 --
30731 --
30732 -- set accounting line type info
30733 --
30734 xla_ae_lines_pkg.SetAcctLineType
30735 (p_component_type => l_component_type
30736 ,p_event_type_code => l_event_type_code
30737 ,p_line_definition_owner_code => l_line_definition_owner_code
30738 ,p_line_definition_code => l_line_definition_code
30739 ,p_accounting_line_code => l_component_code
30740 ,p_accounting_line_type_code => l_component_type_code
30741 ,p_accounting_line_appl_id => l_component_appl_id
30742 ,p_amb_context_code => l_amb_context_code
30743 ,p_entity_code => l_entity_code
30744 ,p_event_class_code => l_event_class_code);
30745 --
30746 -- set accounting class
30747 --
30748 xla_ae_lines_pkg.SetAcctClass(
30749 p_accounting_class_code => 'PURCHASE_ORDER'
30750 , p_ae_header_id => l_ae_header_id
30751 );
30752
30753 --
30754 -- set rounding class
30755 --
30756 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30757 'PURCHASE_ORDER';
30758
30759 --
30760 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30761 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30762 --
30763 -- bulk performance
30764 --
30765 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30766
30767 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30768 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30769
30770 -- 4955764
30771 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30772 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30773
30774 -- 4458381 Public Sector Enh
30775
30776 --
30777 -- set accounting attributes for the line type
30778 --
30779 l_entered_amt_idx := 23;
30780 l_accted_amt_idx := 28;
30781 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30782 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30783 l_rec_acct_attrs.array_char_value(1) := p_source_15;
30784 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
30785 l_rec_acct_attrs.array_num_value(2) :=
30786 xla_ae_sources_pkg.GetSystemSourceNum(
30787 p_source_code => 'XLA_EVENT_APPL_ID'
30788 , p_source_type_code => 'Y'
30789 , p_source_application_id => 602
30790 );
30791 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
30792 l_rec_acct_attrs.array_char_value(3) := p_source_17;
30793 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
30794 l_rec_acct_attrs.array_char_value(4) :=
30795 xla_ae_sources_pkg.GetSystemSourceChar(
30796 p_source_code => 'XLA_ENTITY_CODE'
30797 , p_source_type_code => 'Y'
30798 , p_source_application_id => 602
30799 );
30800 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
30801 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
30802 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
30803 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
30804 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
30805 l_rec_acct_attrs.array_num_value(7) := p_source_21;
30806 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30807 l_rec_acct_attrs.array_char_value(8) := p_source_22;
30808 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
30809 l_rec_acct_attrs.array_char_value(9) := p_source_23;
30810 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
30811 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
30812 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30813 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
30814 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
30815 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
30816 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
30817 l_rec_acct_attrs.array_char_value(13) := p_source_17;
30818 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
30819 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
30820 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
30821 l_rec_acct_attrs.array_num_value(15) := p_source_26;
30822 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
30823 l_rec_acct_attrs.array_char_value(16) := p_source_27;
30824 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
30825 l_rec_acct_attrs.array_num_value(17) := p_source_28;
30826 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
30827 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
30828 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
30829 l_rec_acct_attrs.array_num_value(19) := p_source_26;
30830 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
30831 l_rec_acct_attrs.array_char_value(20) := p_source_27;
30832 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
30833 l_rec_acct_attrs.array_num_value(21) := p_source_28;
30834 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
30835 l_rec_acct_attrs.array_char_value(22) := p_source_29;
30836 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
30837 l_rec_acct_attrs.array_num_value(23) := p_source_26;
30838 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
30839 l_rec_acct_attrs.array_char_value(24) := p_source_27;
30840 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
30841 l_rec_acct_attrs.array_date_value(25) := p_source_35;
30842 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
30843 l_rec_acct_attrs.array_num_value(26) := p_source_36;
30844 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
30845 l_rec_acct_attrs.array_char_value(27) := p_source_37;
30846 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
30847 l_rec_acct_attrs.array_num_value(28) := p_source_28;
30848 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
30849 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
30850 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
30851 l_rec_acct_attrs.array_char_value(30) := p_source_22;
30852 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
30853 l_rec_acct_attrs.array_num_value(31) := p_source_32;
30854 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
30855 l_rec_acct_attrs.array_num_value(32) := p_source_32;
30856
30857 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30858 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30859
30860 ---------------------------------------------------------------------------------------------------------------
30861 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30862 ---------------------------------------------------------------------------------------------------------------
30863 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30864
30865 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30866 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30867
30868 IF xla_accounting_cache_pkg.GetValueChar
30869 (p_source_code => 'LEDGER_CATEGORY_CODE'
30870 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30871 AND l_bflow_method_code = 'PRIOR_ENTRY'
30875 )
30872 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30873 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30874 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30876 THEN
30877 xla_ae_lines_pkg.BflowUpgEntry
30878 (p_business_method_code => l_bflow_method_code
30879 ,p_business_class_code => l_bflow_class_code
30880 ,p_balance_type => l_balance_type_code);
30881 ELSE
30882 NULL;
30883 -- No business flow processing for business flow method of NONE.
30884 END IF;
30885
30886 --
30887 -- call analytical criteria
30888 --
30889
30890 --
30891 -- call description
30892 --
30893
30894 xla_ae_lines_pkg.SetLineDescription(
30895 p_ae_header_id => l_ae_header_id
30896 ,p_description => Description_2 (
30897 p_application_id => p_application_id
30898 , p_ae_header_id => l_ae_header_id
30899 , p_source_3 => p_source_3
30900 )
30901 );
30902
30903
30904 --
30905 -- call ADRs
30906 -- Bug 4922099
30907 --
30908 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30909 (NVL(l_actual_upg_option, 'N') = 'O') OR
30910 (NVL(l_enc_upg_option, 'N') = 'O')
30911 )
30912 THEN
30913 NULL;
30914 --
30915 --
30916
30917 l_ccid := AcctDerRule_9(
30918 p_application_id => p_application_id
30919 , p_ae_header_id => l_ae_header_id
30920 , p_source_9 => p_source_9
30921 , x_transaction_coa_id => l_adr_transaction_coa_id
30922 , x_accounting_coa_id => l_adr_accounting_coa_id
30923 , x_value_type_code => l_adr_value_type_code
30924 , p_side => 'NA'
30925 );
30926
30927 xla_ae_lines_pkg.set_ccid(
30928 p_code_combination_id => l_ccid
30929 , p_value_type_code => l_adr_value_type_code
30930 , p_transaction_coa_id => l_adr_transaction_coa_id
30931 , p_accounting_coa_id => l_adr_accounting_coa_id
30932 , p_adr_code => 'FV_ACCOUNT_RULE'
30933 , p_adr_type_code => 'S'
30934 , p_component_type => l_component_type
30935 , p_component_code => l_component_code
30936 , p_component_type_code => l_component_type_code
30937 , p_component_appl_id => l_component_appl_id
30938 , p_amb_context_code => l_amb_context_code
30939 , p_side => 'NA'
30940 );
30941
30942
30943 l_segment := AcctDerRule_11(
30944 p_application_id => p_application_id
30945 , p_ae_header_id => l_ae_header_id
30946 , p_source_8 => p_source_8
30947 , x_transaction_coa_id => l_adr_transaction_coa_id
30948 , x_accounting_coa_id => l_adr_accounting_coa_id
30949 , x_flexfield_segment_code => l_adr_flexfield_segment_code
30950 , x_flex_value_set_id => l_adr_flex_value_set_id
30951 , x_value_type_code => l_adr_value_type_code
30952 , x_value_combination_id => l_adr_value_combination_id
30953 , x_value_segment_code => l_adr_value_segment_code
30954 , p_side => 'NA'
30955 , p_override_seg_flag => 'Y'
30956 );
30957
30958 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
30959
30960 xla_ae_lines_pkg.set_segment(
30961 p_to_segment_code => 'GL_ACCOUNT'
30962 , p_segment_value => l_segment
30963 , p_from_segment_code => l_adr_value_segment_code
30964 , p_from_combination_id => l_adr_value_combination_id
30965 , p_value_type_code => l_adr_value_type_code
30966 , p_transaction_coa_id => l_adr_transaction_coa_id
30967 , p_accounting_coa_id => l_adr_accounting_coa_id
30968 , p_flexfield_segment_code => l_adr_flexfield_segment_code
30969 , p_flex_value_set_id => l_adr_flex_value_set_id
30970 , p_adr_code => 'FV_PYA_445002_UNANTICIPATED'
30971 , p_adr_type_code => 'S'
30972 , p_component_type => l_component_type
30973 , p_component_code => l_component_code
30974 , p_component_type_code => l_component_type_code
30975 , p_component_appl_id => l_component_appl_id
30976 , p_amb_context_code => l_amb_context_code
30977 , p_entity_code => 'RELEASE'
30978 , p_event_class_code => 'RELEASE'
30979 , p_side => 'NA'
30980 );
30981
30982 END IF;
30983
30984 --
30985 --
30986 END IF;
30987 --
30988 -- Bug 4922099
30989 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30990 (NVL(l_enc_upg_option, 'N') = 'O')
30991 ) AND
30992 (l_bflow_method_code = 'PRIOR_ENTRY')
30993 )
30994 THEN
30995 IF
30996 --
30997 1 = 2
30998 --
30999 THEN
31000 xla_accounting_err_pkg.build_message
31001 (p_appli_s_name => 'XLA'
31002 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31003 ,p_token_1 => 'LINE_NUMBER'
31004 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31005 ,p_token_2 => 'LINE_TYPE_NAME'
31006 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31010 ,l_component_appl_id
31007 l_component_type
31008 ,l_component_code
31009 ,l_component_type_code
31011 ,l_amb_context_code
31012 ,l_entity_code
31013 ,l_event_class_code
31014 )
31015 ,p_token_3 => 'OWNER'
31016 ,p_value_3 => xla_lookups_pkg.get_meaning(
31017 p_lookup_type => 'XLA_OWNER_TYPE'
31018 ,p_lookup_code => l_component_type_code
31019 )
31020 ,p_token_4 => 'PRODUCT_NAME'
31021 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31022 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31023 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31024 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31025 ,p_ae_header_id => NULL
31026 );
31027
31028 IF (C_LEVEL_ERROR>= g_log_level) THEN
31029 trace
31030 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31031 ,p_level => C_LEVEL_ERROR
31032 ,p_module => l_log_module);
31033 END IF;
31034 END IF;
31035 END IF;
31036 --
31037 --
31038 ------------------------------------------------------------------------------------------------
31039 -- 4219869 Business Flow
31040 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31041 -- Prior Entry. Currently, the following code is always generated.
31042 ------------------------------------------------------------------------------------------------
31043 XLA_AE_LINES_PKG.ValidateCurrentLine;
31044
31045 ------------------------------------------------------------------------------------
31046 -- 4219869 Business Flow
31047 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31048 ------------------------------------------------------------------------------------
31049 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31050
31051 ----------------------------------------------------------------------------------
31052 -- 4219869 Business Flow
31053 -- Update journal entry status -- Need to generate this within IF <condition>
31054 ----------------------------------------------------------------------------------
31055 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31056 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31057 ,p_balance_type_code => l_balance_type_code
31058 );
31059
31060 -------------------------------------------------------------------------------------------
31061 -- 4262811 - Generate the Accrual Reversal lines
31062 -------------------------------------------------------------------------------------------
31063 BEGIN
31064 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31065 (g_array_event(p_event_id).array_value_num('header_index'));
31066 IF l_acc_rev_flag IS NULL THEN
31067 l_acc_rev_flag := 'N';
31068 END IF;
31069 EXCEPTION
31070 WHEN OTHERS THEN
31071 l_acc_rev_flag := 'N';
31072 END;
31073 --
31074 IF (l_acc_rev_flag = 'Y') THEN
31075
31076 -- 4645092 ------------------------------------------------------------------------------
31077 -- To allow MPA report to determine if it should generate report process
31078 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31079 ------------------------------------------------------------------------------------------
31080
31081 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31082 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31083
31084 --
31085 -- Update the line information that should be overwritten
31086 --
31087 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31088 p_header_num => 1);
31089 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31090
31091 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31092
31093 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31094 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31095 END IF;
31096
31097 --
31098 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31099 --
31100 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31101 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31102 ELSE
31103 ---------------------------------------------------------------------------------------------------
31104 -- 4262811a Switch Sign
31105 ---------------------------------------------------------------------------------------------------
31106 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31107 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31108 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31109 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31110 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31111 -- 5132302
31112 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31113 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31114
31115 END IF;
31116
31117 -- 4955764
31118 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31119 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31120
31121
31122 XLA_AE_LINES_PKG.ValidateCurrentLine;
31123 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31124
31125 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31126 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31127 ,p_balance_type_code => l_balance_type_code);
31128
31129 END IF;
31130
31131 -----------------------------------------------------------------------------------------
31132 -- 4262811 Multiperiod Accounting
31133 -----------------------------------------------------------------------------------------
31134 -- No MPA option is assigned.
31135
31136
31137 END IF;
31138 END IF;
31139 --
31140
31141 --
31142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31143 trace
31144 (p_msg => 'END of AcctLineType_59'
31145 ,p_level => C_LEVEL_PROCEDURE
31146 ,p_module => l_log_module);
31147 END IF;
31148 --
31149 EXCEPTION
31150 WHEN xla_exceptions_pkg.application_exception THEN
31151 RAISE;
31152 WHEN OTHERS THEN
31153 xla_exceptions_pkg.raise_message
31154 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_59');
31155 END AcctLineType_59;
31156 --
31157
31158 ---------------------------------------
31159 --
31160 -- PRIVATE FUNCTION
31161 -- AcctLineType_60
31162 --
31163 ---------------------------------------
31164 PROCEDURE AcctLineType_60 (
31165 p_application_id IN NUMBER
31166 ,p_event_id IN NUMBER
31167 ,p_calculate_acctd_flag IN VARCHAR2
31168 ,p_calculate_g_l_flag IN VARCHAR2
31169 ,p_actual_flag IN OUT VARCHAR2
31170 ,p_balance_type_code OUT VARCHAR2
31171 ,p_gain_or_loss_ref OUT VARCHAR2
31172
31173 --Journal entry Line Description
31174 , p_source_3 IN VARCHAR2
31175 --Budget Account
31176 , p_source_9 IN NUMBER
31177 --Federal Prior Year Flag
31178 , p_source_10 IN VARCHAR2
31179 --Main Or Backing Code
31180 , p_source_13 IN VARCHAR2
31181 --Accounting Reversal Flag
31182 , p_source_15 IN VARCHAR2
31183 --Distribution Link Type
31184 , p_source_17 IN VARCHAR2
31185 --PO Distribution Identifier
31186 , p_source_19 IN NUMBER
31187 --Applied To Application Identifier
31188 , p_source_21 IN NUMBER
31189 --Applied To Distribution Link Type
31190 , p_source_22 IN VARCHAR2
31191 --Applied To Entity Code
31192 , p_source_23 IN VARCHAR2
31193 --Applied To Distribution Identifier 1
31194 , p_source_24 IN NUMBER
31195 --Applied To Header Identifier 1
31196 , p_source_25 IN NUMBER
31197 --Entered Amount
31198 , p_source_26 IN NUMBER
31199 --Currency Code
31200 , p_source_27 IN VARCHAR2
31201 --Accounted Amount
31202 , p_source_28 IN NUMBER
31203 --PO Encumbrance Upgrade Option
31204 , p_source_29 IN VARCHAR2
31205 --PO Upgrade Encumbrance Type Identifier
31206 , p_source_32 IN NUMBER
31207 --Currency Conversion Date
31208 , p_source_35 IN DATE
31209 --Currency Conversion Rate
31210 , p_source_36 IN NUMBER
31211 --Currency Conversion Type
31212 , p_source_37 IN VARCHAR2
31213 --Federal Pya Amt
31214 , p_source_40 IN NUMBER
31215 --PO Release Identifier
31216 , p_source_41 IN NUMBER
31217 )
31218 IS
31219
31220 l_component_type VARCHAR2(80);
31221 l_component_code VARCHAR2(30);
31222 l_component_type_code VARCHAR2(1);
31223 l_component_appl_id INTEGER;
31224 l_amb_context_code VARCHAR2(30);
31225 l_entity_code VARCHAR2(30);
31226 l_event_class_code VARCHAR2(30);
31227 l_ae_header_id NUMBER;
31228 l_event_type_code VARCHAR2(30);
31229 l_line_definition_code VARCHAR2(30);
31230 l_line_definition_owner_code VARCHAR2(1);
31231 --
31232 -- adr variables
31233 l_segment VARCHAR2(30);
31234 l_ccid NUMBER;
31235 l_adr_transaction_coa_id NUMBER;
31236 l_adr_accounting_coa_id NUMBER;
31237 l_adr_flexfield_segment_code VARCHAR2(30);
31238 l_adr_flex_value_set_id NUMBER;
31239 l_adr_value_type_code VARCHAR2(30);
31240 l_adr_value_combination_id NUMBER;
31241 l_adr_value_segment_code VARCHAR2(30);
31242
31243 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31244 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31245 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31246 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31247
31248 -- 4262811 Variables ------------------------------------------------------------------------------------------
31249 l_entered_amt_idx NUMBER;
31250 l_accted_amt_idx NUMBER;
31251 l_acc_rev_flag VARCHAR2(1);
31252 l_accrual_line_num NUMBER;
31253 l_tmp_amt NUMBER;
31254 l_acc_rev_natural_side_code VARCHAR2(1);
31255
31256 l_num_entries NUMBER;
31257 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31258 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31259 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31260 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31261 l_recog_line_1 NUMBER;
31262 l_recog_line_2 NUMBER;
31263
31264 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31265 l_bflow_applied_to_amt NUMBER; -- 5132302
31266 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31267
31268 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31269
31270 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31271 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31272
31273 ---------------------------------------------------------------------------------------------------------------
31274
31275
31276 --
31277 -- bulk performance
31278 --
31279 l_balance_type_code VARCHAR2(1);
31280 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31281 l_log_module VARCHAR2(240);
31282
31283 --
31284 -- Upgrade strategy
31285 --
31286 l_actual_upg_option VARCHAR2(1);
31287 l_enc_upg_option VARCHAR2(1);
31288
31289 --
31290 BEGIN
31291 --
31292 IF g_log_enabled THEN
31293 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
31294 END IF;
31295 --
31296 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31297
31298 trace
31299 (p_msg => 'BEGIN of AcctLineType_60'
31300 ,p_level => C_LEVEL_PROCEDURE
31301 ,p_module => l_log_module);
31302
31303 END IF;
31304 --
31305 l_component_type := 'AMB_JLT';
31306 l_component_code := 'FV_REL_PYA_RESERVE_CR';
31307 l_component_type_code := 'S';
31308 l_component_appl_id := 201;
31309 l_amb_context_code := 'DEFAULT';
31310 l_entity_code := 'RELEASE';
31311 l_event_class_code := 'RELEASE';
31312 l_event_type_code := 'RELEASE_ALL';
31313 l_line_definition_owner_code := 'S';
31314 l_line_definition_code := 'FV_RELEASE_ALL';
31315 --
31316 l_balance_type_code := 'A';
31317 l_segment := NULL;
31318 l_ccid := NULL;
31319 l_adr_transaction_coa_id := NULL;
31320 l_adr_accounting_coa_id := NULL;
31321 l_adr_flexfield_segment_code := NULL;
31322 l_adr_flex_value_set_id := NULL;
31323 l_adr_value_type_code := NULL;
31324 l_adr_value_combination_id := NULL;
31325 l_adr_value_segment_code := NULL;
31326
31327 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31328 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
31332 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31329 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31330 l_budgetary_control_flag := 'Y';
31331
31333 l_bflow_applied_to_amt := NULL; -- 5132302
31334 l_entered_amt_idx := NULL; -- 4262811
31335 l_accted_amt_idx := NULL; -- 4262811
31336 l_acc_rev_flag := NULL; -- 4262811
31337 l_accrual_line_num := NULL; -- 4262811
31338 l_tmp_amt := NULL; -- 4262811
31339 --
31340
31341 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31342 l_balance_type_code <> 'B' THEN
31343 IF NVL(
31344 xla_ae_sources_pkg.GetSystemSourceChar(
31345 p_source_code => 'XLA_EVENT_CLASS_CODE'
31346 , p_source_type_code => 'Y'
31347 , p_source_application_id => 602
31348 ),'
31349 ') = 'RELEASE_RESERVED' AND
31350 NVL(p_source_13,'
31351 ') = 'Y' AND
31352 NVL(p_source_10,'
31353 ') = 'Y' AND
31354 NVL(p_source_40,9E125) <> 0 AND
31355 p_source_40 IS NOT NULL
31356 THEN
31357
31358 --
31359 XLA_AE_LINES_PKG.SetNewLine;
31360
31361 p_balance_type_code := l_balance_type_code;
31362 -- set the flag so later we will know whether the gain loss line needs to be created
31363
31364 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31365 p_actual_flag :='A';
31366 END IF;
31367
31368 --
31369 -- bulk performance
31370 --
31371 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31372 p_header_num => 0); -- 4262811
31373 --
31374 -- set accounting line options
31375 --
31376 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31377 p_natural_side_code => 'C'
31378 , p_gain_or_loss_flag => 'N'
31379 , p_gl_transfer_mode_code => 'S'
31380 , p_acct_entry_type_code => 'A'
31381 , p_switch_side_flag => 'Y'
31382 , p_merge_duplicate_code => 'N'
31383 );
31384 --
31385 l_acc_rev_natural_side_code := 'D'; -- 4262811
31386 --
31387 --
31388 -- set accounting line type info
31389 --
31390 xla_ae_lines_pkg.SetAcctLineType
31391 (p_component_type => l_component_type
31392 ,p_event_type_code => l_event_type_code
31393 ,p_line_definition_owner_code => l_line_definition_owner_code
31394 ,p_line_definition_code => l_line_definition_code
31395 ,p_accounting_line_code => l_component_code
31396 ,p_accounting_line_type_code => l_component_type_code
31397 ,p_accounting_line_appl_id => l_component_appl_id
31398 ,p_amb_context_code => l_amb_context_code
31399 ,p_entity_code => l_entity_code
31400 ,p_event_class_code => l_event_class_code);
31401 --
31402 -- set accounting class
31403 --
31404 xla_ae_lines_pkg.SetAcctClass(
31405 p_accounting_class_code => 'PURCHASE_ORDER'
31406 , p_ae_header_id => l_ae_header_id
31407 );
31408
31409 --
31410 -- set rounding class
31411 --
31412 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31413 'PURCHASE_ORDER';
31414
31415 --
31416 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31417 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31418 --
31419 -- bulk performance
31420 --
31421 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31422
31423 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31424 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31425
31426 -- 4955764
31427 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31428 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31429
31430 -- 4458381 Public Sector Enh
31431
31432 --
31433 -- set accounting attributes for the line type
31434 --
31435 l_entered_amt_idx := 23;
31436 l_accted_amt_idx := 28;
31437 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31438 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31439 l_rec_acct_attrs.array_char_value(1) := p_source_15;
31440 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
31441 l_rec_acct_attrs.array_num_value(2) :=
31442 xla_ae_sources_pkg.GetSystemSourceNum(
31443 p_source_code => 'XLA_EVENT_APPL_ID'
31444 , p_source_type_code => 'Y'
31445 , p_source_application_id => 602
31446 );
31447 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
31448 l_rec_acct_attrs.array_char_value(3) := p_source_17;
31449 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
31450 l_rec_acct_attrs.array_char_value(4) :=
31451 xla_ae_sources_pkg.GetSystemSourceChar(
31452 p_source_code => 'XLA_ENTITY_CODE'
31453 , p_source_type_code => 'Y'
31454 , p_source_application_id => 602
31455 );
31456 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
31457 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
31458 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
31462 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31459 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
31460 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
31461 l_rec_acct_attrs.array_num_value(7) := p_source_21;
31463 l_rec_acct_attrs.array_char_value(8) := p_source_22;
31464 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
31465 l_rec_acct_attrs.array_char_value(9) := p_source_23;
31466 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
31467 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
31468 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31469 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
31470 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
31471 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
31472 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
31473 l_rec_acct_attrs.array_char_value(13) := p_source_17;
31474 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
31475 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
31476 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
31477 l_rec_acct_attrs.array_num_value(15) := p_source_26;
31478 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
31479 l_rec_acct_attrs.array_char_value(16) := p_source_27;
31480 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
31481 l_rec_acct_attrs.array_num_value(17) := p_source_28;
31482 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
31483 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
31484 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
31485 l_rec_acct_attrs.array_num_value(19) := p_source_26;
31486 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
31487 l_rec_acct_attrs.array_char_value(20) := p_source_27;
31488 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
31489 l_rec_acct_attrs.array_num_value(21) := p_source_28;
31490 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
31491 l_rec_acct_attrs.array_char_value(22) := p_source_29;
31492 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
31493 l_rec_acct_attrs.array_num_value(23) := p_source_40;
31494 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
31495 l_rec_acct_attrs.array_char_value(24) := p_source_27;
31496 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
31497 l_rec_acct_attrs.array_date_value(25) := p_source_35;
31498 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
31499 l_rec_acct_attrs.array_num_value(26) := p_source_36;
31500 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
31501 l_rec_acct_attrs.array_char_value(27) := p_source_37;
31502 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
31503 l_rec_acct_attrs.array_num_value(28) := p_source_40;
31504 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
31505 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
31506 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
31507 l_rec_acct_attrs.array_char_value(30) := p_source_22;
31508 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
31509 l_rec_acct_attrs.array_num_value(31) := p_source_32;
31510 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
31511 l_rec_acct_attrs.array_num_value(32) := p_source_32;
31512
31513 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31514 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31515
31516 ---------------------------------------------------------------------------------------------------------------
31517 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31518 ---------------------------------------------------------------------------------------------------------------
31519 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31520
31521 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31522 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31523
31524 IF xla_accounting_cache_pkg.GetValueChar
31525 (p_source_code => 'LEDGER_CATEGORY_CODE'
31526 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31527 AND l_bflow_method_code = 'PRIOR_ENTRY'
31528 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31529 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31530 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31531 )
31532 THEN
31533 xla_ae_lines_pkg.BflowUpgEntry
31534 (p_business_method_code => l_bflow_method_code
31535 ,p_business_class_code => l_bflow_class_code
31536 ,p_balance_type => l_balance_type_code);
31537 ELSE
31538 NULL;
31539 -- No business flow processing for business flow method of NONE.
31540 END IF;
31541
31542 --
31543 -- call analytical criteria
31544 --
31545
31546 --
31547 -- call description
31548 --
31549
31550 xla_ae_lines_pkg.SetLineDescription(
31551 p_ae_header_id => l_ae_header_id
31552 ,p_description => Description_2 (
31553 p_application_id => p_application_id
31554 , p_ae_header_id => l_ae_header_id
31555 , p_source_3 => p_source_3
31556 )
31557 );
31558
31559
31560 --
31561 -- call ADRs
31562 -- Bug 4922099
31563 --
31564 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31565 (NVL(l_actual_upg_option, 'N') = 'O') OR
31566 (NVL(l_enc_upg_option, 'N') = 'O')
31567 )
31568 THEN
31569 NULL;
31570 --
31571 --
31572
31573 l_ccid := AcctDerRule_9(
31574 p_application_id => p_application_id
31575 , p_ae_header_id => l_ae_header_id
31576 , p_source_9 => p_source_9
31577 , x_transaction_coa_id => l_adr_transaction_coa_id
31578 , x_accounting_coa_id => l_adr_accounting_coa_id
31579 , x_value_type_code => l_adr_value_type_code
31580 , p_side => 'NA'
31581 );
31582
31583 xla_ae_lines_pkg.set_ccid(
31584 p_code_combination_id => l_ccid
31585 , p_value_type_code => l_adr_value_type_code
31586 , p_transaction_coa_id => l_adr_transaction_coa_id
31587 , p_accounting_coa_id => l_adr_accounting_coa_id
31588 , p_adr_code => 'FV_ACCOUNT_RULE'
31589 , p_adr_type_code => 'S'
31590 , p_component_type => l_component_type
31591 , p_component_code => l_component_code
31592 , p_component_type_code => l_component_type_code
31593 , p_component_appl_id => l_component_appl_id
31594 , p_amb_context_code => l_amb_context_code
31595 , p_side => 'NA'
31596 );
31597
31598
31599 l_segment := AcctDerRule_8(
31600 p_application_id => p_application_id
31601 , p_ae_header_id => l_ae_header_id
31602 , x_transaction_coa_id => l_adr_transaction_coa_id
31603 , x_accounting_coa_id => l_adr_accounting_coa_id
31604 , x_flexfield_segment_code => l_adr_flexfield_segment_code
31605 , x_flex_value_set_id => l_adr_flex_value_set_id
31606 , x_value_type_code => l_adr_value_type_code
31607 , x_value_combination_id => l_adr_value_combination_id
31608 , x_value_segment_code => l_adr_value_segment_code
31609 , p_side => 'NA'
31610 , p_override_seg_flag => 'Y'
31611 );
31612
31613 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
31614
31615 xla_ae_lines_pkg.set_segment(
31616 p_to_segment_code => 'GL_ACCOUNT'
31617 , p_segment_value => l_segment
31618 , p_from_segment_code => l_adr_value_segment_code
31619 , p_from_combination_id => l_adr_value_combination_id
31620 , p_value_type_code => l_adr_value_type_code
31621 , p_transaction_coa_id => l_adr_transaction_coa_id
31622 , p_accounting_coa_id => l_adr_accounting_coa_id
31623 , p_flexfield_segment_code => l_adr_flexfield_segment_code
31624 , p_flex_value_set_id => l_adr_flex_value_set_id
31625 , p_adr_code => 'FV_48X101_PURCHASING'
31626 , p_adr_type_code => 'S'
31627 , p_component_type => l_component_type
31628 , p_component_code => l_component_code
31629 , p_component_type_code => l_component_type_code
31630 , p_component_appl_id => l_component_appl_id
31631 , p_amb_context_code => l_amb_context_code
31632 , p_entity_code => 'RELEASE'
31633 , p_event_class_code => 'RELEASE'
31634 , p_side => 'NA'
31635 );
31636
31637 END IF;
31638
31639 --
31640 --
31641 END IF;
31642 --
31643 -- Bug 4922099
31644 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31645 (NVL(l_enc_upg_option, 'N') = 'O')
31646 ) AND
31647 (l_bflow_method_code = 'PRIOR_ENTRY')
31648 )
31649 THEN
31650 IF
31651 --
31652 1 = 2
31653 --
31654 THEN
31655 xla_accounting_err_pkg.build_message
31656 (p_appli_s_name => 'XLA'
31657 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31658 ,p_token_1 => 'LINE_NUMBER'
31659 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31660 ,p_token_2 => 'LINE_TYPE_NAME'
31661 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31662 l_component_type
31663 ,l_component_code
31664 ,l_component_type_code
31665 ,l_component_appl_id
31666 ,l_amb_context_code
31667 ,l_entity_code
31668 ,l_event_class_code
31669 )
31670 ,p_token_3 => 'OWNER'
31671 ,p_value_3 => xla_lookups_pkg.get_meaning(
31672 p_lookup_type => 'XLA_OWNER_TYPE'
31673 ,p_lookup_code => l_component_type_code
31674 )
31675 ,p_token_4 => 'PRODUCT_NAME'
31676 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31677 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31678 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31679 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31680 ,p_ae_header_id => NULL
31681 );
31682
31683 IF (C_LEVEL_ERROR>= g_log_level) THEN
31684 trace
31685 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31686 ,p_level => C_LEVEL_ERROR
31687 ,p_module => l_log_module);
31688 END IF;
31689 END IF;
31690 END IF;
31691 --
31692 --
31693 ------------------------------------------------------------------------------------------------
31694 -- 4219869 Business Flow
31695 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31696 -- Prior Entry. Currently, the following code is always generated.
31697 ------------------------------------------------------------------------------------------------
31698 XLA_AE_LINES_PKG.ValidateCurrentLine;
31699
31700 ------------------------------------------------------------------------------------
31701 -- 4219869 Business Flow
31702 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31703 ------------------------------------------------------------------------------------
31704 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31705
31706 ----------------------------------------------------------------------------------
31707 -- 4219869 Business Flow
31708 -- Update journal entry status -- Need to generate this within IF <condition>
31709 ----------------------------------------------------------------------------------
31710 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31711 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31715 -------------------------------------------------------------------------------------------
31712 ,p_balance_type_code => l_balance_type_code
31713 );
31714
31716 -- 4262811 - Generate the Accrual Reversal lines
31717 -------------------------------------------------------------------------------------------
31718 BEGIN
31719 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31720 (g_array_event(p_event_id).array_value_num('header_index'));
31721 IF l_acc_rev_flag IS NULL THEN
31722 l_acc_rev_flag := 'N';
31723 END IF;
31724 EXCEPTION
31725 WHEN OTHERS THEN
31726 l_acc_rev_flag := 'N';
31727 END;
31728 --
31729 IF (l_acc_rev_flag = 'Y') THEN
31730
31731 -- 4645092 ------------------------------------------------------------------------------
31732 -- To allow MPA report to determine if it should generate report process
31733 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31734 ------------------------------------------------------------------------------------------
31735
31736 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31737 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31738
31739 --
31740 -- Update the line information that should be overwritten
31741 --
31742 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31743 p_header_num => 1);
31744 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31745
31746 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31747
31748 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31749 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31750 END IF;
31751
31752 --
31753 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31754 --
31755 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31756 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31757 ELSE
31758 ---------------------------------------------------------------------------------------------------
31759 -- 4262811a Switch Sign
31760 ---------------------------------------------------------------------------------------------------
31761 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31762 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31763 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31764 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31765 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31766 -- 5132302
31767 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31768 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31769
31770 END IF;
31771
31772 -- 4955764
31773 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31774 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31775
31776
31777 XLA_AE_LINES_PKG.ValidateCurrentLine;
31778 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31779
31780 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31781 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31782 ,p_balance_type_code => l_balance_type_code);
31783
31784 END IF;
31785
31786 -----------------------------------------------------------------------------------------
31787 -- 4262811 Multiperiod Accounting
31788 -----------------------------------------------------------------------------------------
31789 -- No MPA option is assigned.
31790
31791
31792 END IF;
31793 END IF;
31794 --
31795
31796 --
31797 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31798 trace
31799 (p_msg => 'END of AcctLineType_60'
31800 ,p_level => C_LEVEL_PROCEDURE
31801 ,p_module => l_log_module);
31802 END IF;
31803 --
31804 EXCEPTION
31805 WHEN xla_exceptions_pkg.application_exception THEN
31806 RAISE;
31807 WHEN OTHERS THEN
31808 xla_exceptions_pkg.raise_message
31809 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_60');
31810 END AcctLineType_60;
31811 --
31812
31813 ---------------------------------------
31814 --
31815 -- PRIVATE FUNCTION
31816 -- AcctLineType_61
31817 --
31818 ---------------------------------------
31819 PROCEDURE AcctLineType_61 (
31820 p_application_id IN NUMBER
31821 ,p_event_id IN NUMBER
31822 ,p_calculate_acctd_flag IN VARCHAR2
31823 ,p_calculate_g_l_flag IN VARCHAR2
31824 ,p_actual_flag IN OUT VARCHAR2
31825 ,p_balance_type_code OUT VARCHAR2
31826 ,p_gain_or_loss_ref OUT VARCHAR2
31827
31828 --Journal entry Line Description
31829 , p_source_3 IN VARCHAR2
31830 --Federal Fund Category
31831 , p_source_7 IN VARCHAR2
31832 --Federal Fund Expired Status
31833 , p_source_8 IN VARCHAR2
31834 --Budget Account
31835 , p_source_9 IN NUMBER
31836 --Federal Prior Year Flag
31837 , p_source_10 IN VARCHAR2
31838 --Main Or Backing Code
31839 , p_source_13 IN VARCHAR2
31840 --Accounting Reversal Flag
31841 , p_source_15 IN VARCHAR2
31842 --Distribution Link Type
31843 , p_source_17 IN VARCHAR2
31844 --PO Distribution Identifier
31845 , p_source_19 IN NUMBER
31846 --Applied To Application Identifier
31847 , p_source_21 IN NUMBER
31848 --Applied To Distribution Link Type
31849 , p_source_22 IN VARCHAR2
31850 --Applied To Entity Code
31851 , p_source_23 IN VARCHAR2
31852 --Applied To Distribution Identifier 1
31853 , p_source_24 IN NUMBER
31854 --Applied To Header Identifier 1
31855 , p_source_25 IN NUMBER
31856 --Entered Amount
31857 , p_source_26 IN NUMBER
31858 --Currency Code
31859 , p_source_27 IN VARCHAR2
31860 --Accounted Amount
31861 , p_source_28 IN NUMBER
31862 --PO Encumbrance Upgrade Option
31863 , p_source_29 IN VARCHAR2
31864 --PO Upgrade Encumbrance Type Identifier
31865 , p_source_32 IN NUMBER
31866 --Currency Conversion Date
31867 , p_source_35 IN DATE
31868 --Currency Conversion Rate
31869 , p_source_36 IN NUMBER
31870 --Currency Conversion Type
31871 , p_source_37 IN VARCHAR2
31872 --Federal Pya Amt
31873 , p_source_40 IN NUMBER
31874 --PO Release Identifier
31875 , p_source_41 IN NUMBER
31876 )
31877 IS
31878
31879 l_component_type VARCHAR2(80);
31880 l_component_code VARCHAR2(30);
31881 l_component_type_code VARCHAR2(1);
31882 l_component_appl_id INTEGER;
31883 l_amb_context_code VARCHAR2(30);
31884 l_entity_code VARCHAR2(30);
31885 l_event_class_code VARCHAR2(30);
31886 l_ae_header_id NUMBER;
31887 l_event_type_code VARCHAR2(30);
31888 l_line_definition_code VARCHAR2(30);
31889 l_line_definition_owner_code VARCHAR2(1);
31890 --
31891 -- adr variables
31892 l_segment VARCHAR2(30);
31893 l_ccid NUMBER;
31894 l_adr_transaction_coa_id NUMBER;
31895 l_adr_accounting_coa_id NUMBER;
31896 l_adr_flexfield_segment_code VARCHAR2(30);
31897 l_adr_flex_value_set_id NUMBER;
31898 l_adr_value_type_code VARCHAR2(30);
31899 l_adr_value_combination_id NUMBER;
31900 l_adr_value_segment_code VARCHAR2(30);
31901
31902 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31903 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31904 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31905 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31906
31907 -- 4262811 Variables ------------------------------------------------------------------------------------------
31908 l_entered_amt_idx NUMBER;
31909 l_accted_amt_idx NUMBER;
31910 l_acc_rev_flag VARCHAR2(1);
31911 l_accrual_line_num NUMBER;
31912 l_tmp_amt NUMBER;
31913 l_acc_rev_natural_side_code VARCHAR2(1);
31914
31915 l_num_entries NUMBER;
31916 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31917 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31918 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31919 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31920 l_recog_line_1 NUMBER;
31921 l_recog_line_2 NUMBER;
31922
31923 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31924 l_bflow_applied_to_amt NUMBER; -- 5132302
31925 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31926
31927 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31928
31929 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31930 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31931
31932 ---------------------------------------------------------------------------------------------------------------
31933
31934
31935 --
31936 -- bulk performance
31937 --
31938 l_balance_type_code VARCHAR2(1);
31939 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31940 l_log_module VARCHAR2(240);
31941
31942 --
31943 -- Upgrade strategy
31944 --
31945 l_actual_upg_option VARCHAR2(1);
31946 l_enc_upg_option VARCHAR2(1);
31947
31948 --
31949 BEGIN
31950 --
31951 IF g_log_enabled THEN
31952 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
31953 END IF;
31954 --
31955 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31956
31957 trace
31958 (p_msg => 'BEGIN of AcctLineType_61'
31959 ,p_level => C_LEVEL_PROCEDURE
31960 ,p_module => l_log_module);
31961
31962 END IF;
31963 --
31964 l_component_type := 'AMB_JLT';
31965 l_component_code := 'FV_REL_PYA_RESERVE_DR';
31966 l_component_type_code := 'S';
31967 l_component_appl_id := 201;
31968 l_amb_context_code := 'DEFAULT';
31969 l_entity_code := 'RELEASE';
31970 l_event_class_code := 'RELEASE';
31971 l_event_type_code := 'RELEASE_ALL';
31972 l_line_definition_owner_code := 'S';
31973 l_line_definition_code := 'FV_RELEASE_ALL';
31974 --
31975 l_balance_type_code := 'A';
31976 l_segment := NULL;
31977 l_ccid := NULL;
31978 l_adr_transaction_coa_id := NULL;
31979 l_adr_accounting_coa_id := NULL;
31980 l_adr_flexfield_segment_code := NULL;
31981 l_adr_flex_value_set_id := NULL;
31982 l_adr_value_type_code := NULL;
31983 l_adr_value_combination_id := NULL;
31984 l_adr_value_segment_code := NULL;
31985
31986 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31987 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
31988 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31989 l_budgetary_control_flag := 'Y';
31990
31991 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31992 l_bflow_applied_to_amt := NULL; -- 5132302
31993 l_entered_amt_idx := NULL; -- 4262811
31994 l_accted_amt_idx := NULL; -- 4262811
31995 l_acc_rev_flag := NULL; -- 4262811
31996 l_accrual_line_num := NULL; -- 4262811
31997 l_tmp_amt := NULL; -- 4262811
31998 --
31999
32000 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32001 l_balance_type_code <> 'B' THEN
32002 IF NVL(
32003 xla_ae_sources_pkg.GetSystemSourceChar(
32004 p_source_code => 'XLA_EVENT_CLASS_CODE'
32005 , p_source_type_code => 'Y'
32006 , p_source_application_id => 602
32007 ),'
32008 ') = 'RELEASE_RESERVED' AND
32009 NVL(p_source_13,'
32010 ') = 'Y' AND
32011 NVL(p_source_10,'
32012 ') = 'Y' AND
32013 NVL(p_source_40,9E125) <> 0 AND
32014 p_source_40 IS NOT NULL
32015 THEN
32016
32017 --
32018 XLA_AE_LINES_PKG.SetNewLine;
32019
32020 p_balance_type_code := l_balance_type_code;
32021 -- set the flag so later we will know whether the gain loss line needs to be created
32022
32023 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32024 p_actual_flag :='A';
32025 END IF;
32026
32027 --
32028 -- bulk performance
32029 --
32030 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32031 p_header_num => 0); -- 4262811
32032 --
32033 -- set accounting line options
32034 --
32035 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32039 , p_acct_entry_type_code => 'A'
32036 p_natural_side_code => 'D'
32037 , p_gain_or_loss_flag => 'N'
32038 , p_gl_transfer_mode_code => 'S'
32040 , p_switch_side_flag => 'Y'
32041 , p_merge_duplicate_code => 'N'
32042 );
32043 --
32044 l_acc_rev_natural_side_code := 'C'; -- 4262811
32045 --
32046 --
32047 -- set accounting line type info
32048 --
32049 xla_ae_lines_pkg.SetAcctLineType
32050 (p_component_type => l_component_type
32051 ,p_event_type_code => l_event_type_code
32052 ,p_line_definition_owner_code => l_line_definition_owner_code
32053 ,p_line_definition_code => l_line_definition_code
32054 ,p_accounting_line_code => l_component_code
32055 ,p_accounting_line_type_code => l_component_type_code
32056 ,p_accounting_line_appl_id => l_component_appl_id
32057 ,p_amb_context_code => l_amb_context_code
32058 ,p_entity_code => l_entity_code
32059 ,p_event_class_code => l_event_class_code);
32060 --
32061 -- set accounting class
32062 --
32063 xla_ae_lines_pkg.SetAcctClass(
32064 p_accounting_class_code => 'PURCHASE_ORDER'
32065 , p_ae_header_id => l_ae_header_id
32066 );
32067
32068 --
32069 -- set rounding class
32070 --
32071 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32072 'PURCHASE_ORDER';
32073
32074 --
32075 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32076 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32077 --
32078 -- bulk performance
32079 --
32080 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32081
32082 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32083 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32084
32085 -- 4955764
32086 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32087 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32088
32089 -- 4458381 Public Sector Enh
32090
32091 --
32092 -- set accounting attributes for the line type
32093 --
32094 l_entered_amt_idx := 23;
32095 l_accted_amt_idx := 28;
32096 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32097 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32098 l_rec_acct_attrs.array_char_value(1) := p_source_15;
32099 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
32100 l_rec_acct_attrs.array_num_value(2) :=
32101 xla_ae_sources_pkg.GetSystemSourceNum(
32102 p_source_code => 'XLA_EVENT_APPL_ID'
32103 , p_source_type_code => 'Y'
32104 , p_source_application_id => 602
32105 );
32106 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
32107 l_rec_acct_attrs.array_char_value(3) := p_source_17;
32108 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
32109 l_rec_acct_attrs.array_char_value(4) :=
32110 xla_ae_sources_pkg.GetSystemSourceChar(
32111 p_source_code => 'XLA_ENTITY_CODE'
32112 , p_source_type_code => 'Y'
32113 , p_source_application_id => 602
32114 );
32115 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
32116 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
32117 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
32118 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
32119 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
32120 l_rec_acct_attrs.array_num_value(7) := p_source_21;
32121 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32122 l_rec_acct_attrs.array_char_value(8) := p_source_22;
32123 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
32124 l_rec_acct_attrs.array_char_value(9) := p_source_23;
32125 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
32126 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
32127 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32128 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
32129 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
32130 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
32131 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
32132 l_rec_acct_attrs.array_char_value(13) := p_source_17;
32133 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
32134 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
32135 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
32136 l_rec_acct_attrs.array_num_value(15) := p_source_26;
32137 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
32138 l_rec_acct_attrs.array_char_value(16) := p_source_27;
32139 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
32140 l_rec_acct_attrs.array_num_value(17) := p_source_28;
32141 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
32142 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
32143 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
32144 l_rec_acct_attrs.array_num_value(19) := p_source_26;
32145 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
32146 l_rec_acct_attrs.array_char_value(20) := p_source_27;
32147 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
32148 l_rec_acct_attrs.array_num_value(21) := p_source_28;
32149 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
32150 l_rec_acct_attrs.array_char_value(22) := p_source_29;
32151 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
32152 l_rec_acct_attrs.array_num_value(23) := p_source_40;
32153 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
32154 l_rec_acct_attrs.array_char_value(24) := p_source_27;
32155 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
32156 l_rec_acct_attrs.array_date_value(25) := p_source_35;
32157 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
32158 l_rec_acct_attrs.array_num_value(26) := p_source_36;
32159 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
32160 l_rec_acct_attrs.array_char_value(27) := p_source_37;
32161 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
32162 l_rec_acct_attrs.array_num_value(28) := p_source_40;
32163 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
32164 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
32165 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
32166 l_rec_acct_attrs.array_char_value(30) := p_source_22;
32167 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
32168 l_rec_acct_attrs.array_num_value(31) := p_source_32;
32169 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
32170 l_rec_acct_attrs.array_num_value(32) := p_source_32;
32171
32172 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32173 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32174
32175 ---------------------------------------------------------------------------------------------------------------
32176 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32177 ---------------------------------------------------------------------------------------------------------------
32178 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32179
32180 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32181 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32182
32183 IF xla_accounting_cache_pkg.GetValueChar
32184 (p_source_code => 'LEDGER_CATEGORY_CODE'
32185 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32186 AND l_bflow_method_code = 'PRIOR_ENTRY'
32187 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32188 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32189 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32190 )
32191 THEN
32192 xla_ae_lines_pkg.BflowUpgEntry
32193 (p_business_method_code => l_bflow_method_code
32194 ,p_business_class_code => l_bflow_class_code
32195 ,p_balance_type => l_balance_type_code);
32196 ELSE
32197 NULL;
32198 -- No business flow processing for business flow method of NONE.
32199 END IF;
32200
32201 --
32202 -- call analytical criteria
32203 --
32204
32205 --
32206 -- call description
32207 --
32208
32209 xla_ae_lines_pkg.SetLineDescription(
32210 p_ae_header_id => l_ae_header_id
32211 ,p_description => Description_2 (
32212 p_application_id => p_application_id
32213 , p_ae_header_id => l_ae_header_id
32214 , p_source_3 => p_source_3
32215 )
32216 );
32217
32218
32219 --
32220 -- call ADRs
32221 -- Bug 4922099
32222 --
32223 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32224 (NVL(l_actual_upg_option, 'N') = 'O') OR
32225 (NVL(l_enc_upg_option, 'N') = 'O')
32226 )
32227 THEN
32228 NULL;
32229 --
32230 --
32231
32232 l_ccid := AcctDerRule_9(
32233 p_application_id => p_application_id
32234 , p_ae_header_id => l_ae_header_id
32235 , p_source_9 => p_source_9
32236 , x_transaction_coa_id => l_adr_transaction_coa_id
32237 , x_accounting_coa_id => l_adr_accounting_coa_id
32238 , x_value_type_code => l_adr_value_type_code
32239 , p_side => 'NA'
32240 );
32241
32242 xla_ae_lines_pkg.set_ccid(
32243 p_code_combination_id => l_ccid
32244 , p_value_type_code => l_adr_value_type_code
32245 , p_transaction_coa_id => l_adr_transaction_coa_id
32246 , p_accounting_coa_id => l_adr_accounting_coa_id
32247 , p_adr_code => 'FV_ACCOUNT_RULE'
32248 , p_adr_type_code => 'S'
32249 , p_component_type => l_component_type
32250 , p_component_code => l_component_code
32251 , p_component_type_code => l_component_type_code
32252 , p_component_appl_id => l_component_appl_id
32253 , p_amb_context_code => l_amb_context_code
32254 , p_side => 'NA'
32255 );
32256
32257
32258 l_segment := AcctDerRule_5(
32259 p_application_id => p_application_id
32260 , p_ae_header_id => l_ae_header_id
32261 , p_source_7 => p_source_7
32262 , p_source_8 => p_source_8
32263 , x_transaction_coa_id => l_adr_transaction_coa_id
32264 , x_accounting_coa_id => l_adr_accounting_coa_id
32265 , x_flexfield_segment_code => l_adr_flexfield_segment_code
32266 , x_flex_value_set_id => l_adr_flex_value_set_id
32267 , x_value_type_code => l_adr_value_type_code
32268 , x_value_combination_id => l_adr_value_combination_id
32269 , x_value_segment_code => l_adr_value_segment_code
32270 , p_side => 'NA'
32271 , p_override_seg_flag => 'Y'
32272 );
32273
32274 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
32275
32276 xla_ae_lines_pkg.set_segment(
32277 p_to_segment_code => 'GL_ACCOUNT'
32278 , p_segment_value => l_segment
32279 , p_from_segment_code => l_adr_value_segment_code
32280 , p_from_combination_id => l_adr_value_combination_id
32281 , p_value_type_code => l_adr_value_type_code
32282 , p_transaction_coa_id => l_adr_transaction_coa_id
32283 , p_accounting_coa_id => l_adr_accounting_coa_id
32284 , p_flexfield_segment_code => l_adr_flexfield_segment_code
32285 , p_flex_value_set_id => l_adr_flex_value_set_id
32286 , p_adr_code => 'FV_46X002'
32287 , p_adr_type_code => 'S'
32288 , p_component_type => l_component_type
32289 , p_component_code => l_component_code
32290 , p_component_type_code => l_component_type_code
32291 , p_component_appl_id => l_component_appl_id
32292 , p_amb_context_code => l_amb_context_code
32293 , p_entity_code => 'RELEASE'
32294 , p_event_class_code => 'RELEASE'
32295 , p_side => 'NA'
32296 );
32297
32298 END IF;
32299
32300 --
32301 --
32302 END IF;
32303 --
32304 -- Bug 4922099
32305 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32306 (NVL(l_enc_upg_option, 'N') = 'O')
32307 ) AND
32308 (l_bflow_method_code = 'PRIOR_ENTRY')
32309 )
32310 THEN
32311 IF
32312 --
32313 1 = 2
32314 --
32315 THEN
32316 xla_accounting_err_pkg.build_message
32317 (p_appli_s_name => 'XLA'
32318 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32319 ,p_token_1 => 'LINE_NUMBER'
32320 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32321 ,p_token_2 => 'LINE_TYPE_NAME'
32322 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32323 l_component_type
32324 ,l_component_code
32325 ,l_component_type_code
32326 ,l_component_appl_id
32327 ,l_amb_context_code
32328 ,l_entity_code
32329 ,l_event_class_code
32330 )
32331 ,p_token_3 => 'OWNER'
32332 ,p_value_3 => xla_lookups_pkg.get_meaning(
32333 p_lookup_type => 'XLA_OWNER_TYPE'
32334 ,p_lookup_code => l_component_type_code
32335 )
32336 ,p_token_4 => 'PRODUCT_NAME'
32337 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32338 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32339 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32340 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32341 ,p_ae_header_id => NULL
32342 );
32343
32344 IF (C_LEVEL_ERROR>= g_log_level) THEN
32345 trace
32346 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32347 ,p_level => C_LEVEL_ERROR
32348 ,p_module => l_log_module);
32349 END IF;
32350 END IF;
32351 END IF;
32352 --
32353 --
32354 ------------------------------------------------------------------------------------------------
32355 -- 4219869 Business Flow
32356 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32357 -- Prior Entry. Currently, the following code is always generated.
32358 ------------------------------------------------------------------------------------------------
32359 XLA_AE_LINES_PKG.ValidateCurrentLine;
32360
32361 ------------------------------------------------------------------------------------
32362 -- 4219869 Business Flow
32363 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32364 ------------------------------------------------------------------------------------
32365 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32366
32367 ----------------------------------------------------------------------------------
32368 -- 4219869 Business Flow
32369 -- Update journal entry status -- Need to generate this within IF <condition>
32370 ----------------------------------------------------------------------------------
32371 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32372 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32373 ,p_balance_type_code => l_balance_type_code
32374 );
32375
32376 -------------------------------------------------------------------------------------------
32377 -- 4262811 - Generate the Accrual Reversal lines
32378 -------------------------------------------------------------------------------------------
32379 BEGIN
32380 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32381 (g_array_event(p_event_id).array_value_num('header_index'));
32382 IF l_acc_rev_flag IS NULL THEN
32383 l_acc_rev_flag := 'N';
32384 END IF;
32385 EXCEPTION
32386 WHEN OTHERS THEN
32387 l_acc_rev_flag := 'N';
32388 END;
32389 --
32390 IF (l_acc_rev_flag = 'Y') THEN
32391
32392 -- 4645092 ------------------------------------------------------------------------------
32393 -- To allow MPA report to determine if it should generate report process
32394 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32395 ------------------------------------------------------------------------------------------
32396
32397 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32398 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32399
32400 --
32401 -- Update the line information that should be overwritten
32402 --
32403 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32404 p_header_num => 1);
32405 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32406
32407 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32408
32409 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32410 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32411 END IF;
32412
32413 --
32414 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32415 --
32416 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32417 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32418 ELSE
32419 ---------------------------------------------------------------------------------------------------
32420 -- 4262811a Switch Sign
32421 ---------------------------------------------------------------------------------------------------
32422 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32423 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32424 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32425 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32426 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32427 -- 5132302
32428 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32429 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32430
32431 END IF;
32432
32433 -- 4955764
32434 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32435 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32436
32437
32441 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32438 XLA_AE_LINES_PKG.ValidateCurrentLine;
32439 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32440
32442 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32443 ,p_balance_type_code => l_balance_type_code);
32444
32445 END IF;
32446
32447 -----------------------------------------------------------------------------------------
32448 -- 4262811 Multiperiod Accounting
32449 -----------------------------------------------------------------------------------------
32450 -- No MPA option is assigned.
32451
32452
32453 END IF;
32454 END IF;
32455 --
32456
32457 --
32458 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32459 trace
32460 (p_msg => 'END of AcctLineType_61'
32461 ,p_level => C_LEVEL_PROCEDURE
32462 ,p_module => l_log_module);
32463 END IF;
32464 --
32465 EXCEPTION
32466 WHEN xla_exceptions_pkg.application_exception THEN
32467 RAISE;
32468 WHEN OTHERS THEN
32469 xla_exceptions_pkg.raise_message
32470 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_61');
32471 END AcctLineType_61;
32472 --
32473
32474 ---------------------------------------
32475 --
32476 -- PRIVATE FUNCTION
32477 -- AcctLineType_62
32478 --
32479 ---------------------------------------
32480 PROCEDURE AcctLineType_62 (
32481 p_application_id IN NUMBER
32482 ,p_event_id IN NUMBER
32483 ,p_calculate_acctd_flag IN VARCHAR2
32484 ,p_calculate_g_l_flag IN VARCHAR2
32485 ,p_actual_flag IN OUT VARCHAR2
32486 ,p_balance_type_code OUT VARCHAR2
32487 ,p_gain_or_loss_ref OUT VARCHAR2
32488
32489 --Budget Account
32490 , p_source_9 IN NUMBER
32491 --Main Or Backing Code
32492 , p_source_13 IN VARCHAR2
32493 --Accounting Reversal Flag
32494 , p_source_15 IN VARCHAR2
32495 --Distribution Link Type
32496 , p_source_17 IN VARCHAR2
32497 --PO Distribution Identifier
32498 , p_source_19 IN NUMBER
32499 --Applied To Application Identifier
32500 , p_source_21 IN NUMBER
32501 --Applied To Distribution Link Type
32502 , p_source_22 IN VARCHAR2
32503 --Applied To Entity Code
32504 , p_source_23 IN VARCHAR2
32505 --Applied To Distribution Identifier 1
32506 , p_source_24 IN NUMBER
32507 --Applied To Header Identifier 1
32508 , p_source_25 IN NUMBER
32509 --Entered Amount
32510 , p_source_26 IN NUMBER
32511 --Currency Code
32512 , p_source_27 IN VARCHAR2
32513 --Accounted Amount
32514 , p_source_28 IN NUMBER
32515 --PO Encumbrance Upgrade Option
32516 , p_source_29 IN VARCHAR2
32517 --JFMIP Reference
32518 , p_source_31 IN VARCHAR2
32519 --PO Upgrade Encumbrance Type Identifier
32520 , p_source_32 IN NUMBER
32521 --Allocated to Main Document Distribution Identifier
32522 , p_source_34 IN NUMBER
32523 --PO Release Identifier
32524 , p_source_41 IN NUMBER
32525 )
32526 IS
32527
32528 l_component_type VARCHAR2(80);
32529 l_component_code VARCHAR2(30);
32530 l_component_type_code VARCHAR2(1);
32531 l_component_appl_id INTEGER;
32532 l_amb_context_code VARCHAR2(30);
32533 l_entity_code VARCHAR2(30);
32534 l_event_class_code VARCHAR2(30);
32535 l_ae_header_id NUMBER;
32536 l_event_type_code VARCHAR2(30);
32537 l_line_definition_code VARCHAR2(30);
32538 l_line_definition_owner_code VARCHAR2(1);
32539 --
32540 -- adr variables
32541 l_segment VARCHAR2(30);
32542 l_ccid NUMBER;
32543 l_adr_transaction_coa_id NUMBER;
32544 l_adr_accounting_coa_id NUMBER;
32545 l_adr_flexfield_segment_code VARCHAR2(30);
32546 l_adr_flex_value_set_id NUMBER;
32547 l_adr_value_type_code VARCHAR2(30);
32548 l_adr_value_combination_id NUMBER;
32549 l_adr_value_segment_code VARCHAR2(30);
32550
32551 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32552 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32553 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32554 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32555
32556 -- 4262811 Variables ------------------------------------------------------------------------------------------
32557 l_entered_amt_idx NUMBER;
32558 l_accted_amt_idx NUMBER;
32559 l_acc_rev_flag VARCHAR2(1);
32560 l_accrual_line_num NUMBER;
32561 l_tmp_amt NUMBER;
32562 l_acc_rev_natural_side_code VARCHAR2(1);
32563
32564 l_num_entries NUMBER;
32565 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32566 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32567 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32568 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32569 l_recog_line_1 NUMBER;
32570 l_recog_line_2 NUMBER;
32571
32572 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32573 l_bflow_applied_to_amt NUMBER; -- 5132302
32574 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32575
32576 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32577
32578 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32579 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32580
32581 ---------------------------------------------------------------------------------------------------------------
32582
32583
32584 --
32585 -- bulk performance
32586 --
32587 l_balance_type_code VARCHAR2(1);
32588 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32589 l_log_module VARCHAR2(240);
32590
32591 --
32592 -- Upgrade strategy
32593 --
32594 l_actual_upg_option VARCHAR2(1);
32595 l_enc_upg_option VARCHAR2(1);
32596
32597 --
32598 BEGIN
32599 --
32600 IF g_log_enabled THEN
32601 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
32602 END IF;
32603 --
32604 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32605
32606 trace
32607 (p_msg => 'BEGIN of AcctLineType_62'
32608 ,p_level => C_LEVEL_PROCEDURE
32609 ,p_module => l_log_module);
32610
32611 END IF;
32612 --
32613 l_component_type := 'AMB_JLT';
32614 l_component_code := 'FV_REL_REINST_PO_PA_CR';
32615 l_component_type_code := 'S';
32616 l_component_appl_id := 201;
32617 l_amb_context_code := 'DEFAULT';
32618 l_entity_code := 'RELEASE';
32619 l_event_class_code := 'RELEASE';
32620 l_event_type_code := 'RELEASE_ALL';
32621 l_line_definition_owner_code := 'S';
32622 l_line_definition_code := 'FV_RELEASE_ALL';
32623 --
32624 l_balance_type_code := 'A';
32625 l_segment := NULL;
32626 l_ccid := NULL;
32627 l_adr_transaction_coa_id := NULL;
32628 l_adr_accounting_coa_id := NULL;
32629 l_adr_flexfield_segment_code := NULL;
32630 l_adr_flex_value_set_id := NULL;
32631 l_adr_value_type_code := NULL;
32632 l_adr_value_combination_id := NULL;
32633 l_adr_value_segment_code := NULL;
32634
32635 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
32636 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
32637 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
32638 l_budgetary_control_flag := 'Y';
32639
32640 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32641 l_bflow_applied_to_amt := NULL; -- 5132302
32642 l_entered_amt_idx := NULL; -- 4262811
32643 l_accted_amt_idx := NULL; -- 4262811
32644 l_acc_rev_flag := NULL; -- 4262811
32645 l_accrual_line_num := NULL; -- 4262811
32646 l_tmp_amt := NULL; -- 4262811
32647 --
32648
32652 xla_ae_sources_pkg.GetSystemSourceChar(
32649 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32650 l_balance_type_code <> 'B' THEN
32651 IF (NVL(
32653 p_source_code => 'XLA_EVENT_TYPE_CODE'
32654 , p_source_type_code => 'Y'
32655 , p_source_application_id => 602
32656 ),'
32657 ') = 'RELEASE_UNRESERVED' OR
32658 NVL(
32659 xla_ae_sources_pkg.GetSystemSourceChar(
32660 p_source_code => 'XLA_EVENT_TYPE_CODE'
32661 , p_source_type_code => 'Y'
32662 , p_source_application_id => 602
32663 ),'
32664 ') = 'RELEASE_REJECTED' OR
32665 NVL(
32666 xla_ae_sources_pkg.GetSystemSourceChar(
32667 p_source_code => 'XLA_EVENT_TYPE_CODE'
32668 , p_source_type_code => 'Y'
32669 , p_source_application_id => 602
32670 ),'
32671 ') = 'RELEASE_INV_CANCELLED') AND
32672 (NVL(p_source_13,'
32673 ') = 'B_PO' OR
32674 NVL(p_source_13,'
32675 ') = 'B_PA')
32676 THEN
32677
32678 --
32679 XLA_AE_LINES_PKG.SetNewLine;
32680
32681 p_balance_type_code := l_balance_type_code;
32682 -- set the flag so later we will know whether the gain loss line needs to be created
32683
32684 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32685 p_actual_flag :='A';
32686 END IF;
32687
32688 --
32689 -- bulk performance
32690 --
32691 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32692 p_header_num => 0); -- 4262811
32693 --
32694 -- set accounting line options
32695 --
32696 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32697 p_natural_side_code => 'C'
32698 , p_gain_or_loss_flag => 'N'
32699 , p_gl_transfer_mode_code => 'S'
32700 , p_acct_entry_type_code => 'A'
32701 , p_switch_side_flag => 'N'
32702 , p_merge_duplicate_code => 'N'
32703 );
32704 --
32705 l_acc_rev_natural_side_code := 'D'; -- 4262811
32706 --
32707 --
32708 -- set accounting line type info
32709 --
32710 xla_ae_lines_pkg.SetAcctLineType
32711 (p_component_type => l_component_type
32712 ,p_event_type_code => l_event_type_code
32713 ,p_line_definition_owner_code => l_line_definition_owner_code
32714 ,p_line_definition_code => l_line_definition_code
32715 ,p_accounting_line_code => l_component_code
32716 ,p_accounting_line_type_code => l_component_type_code
32717 ,p_accounting_line_appl_id => l_component_appl_id
32718 ,p_amb_context_code => l_amb_context_code
32719 ,p_entity_code => l_entity_code
32720 ,p_event_class_code => l_event_class_code);
32721 --
32722 -- set accounting class
32723 --
32724 xla_ae_lines_pkg.SetAcctClass(
32725 p_accounting_class_code => 'PURCHASE_ORDER'
32726 , p_ae_header_id => l_ae_header_id
32727 );
32728
32729 --
32730 -- set rounding class
32731 --
32732 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32733 'PURCHASE_ORDER';
32734
32735 --
32736 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32737 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32738 --
32739 -- bulk performance
32740 --
32741 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32742
32743 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32744 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32745
32746 -- 4955764
32747 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32748 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32749
32750 -- 4458381 Public Sector Enh
32751
32752 --
32753 -- set accounting attributes for the line type
32754 --
32755 l_entered_amt_idx := 23;
32756 l_accted_amt_idx := 25;
32757 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32758 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32759 l_rec_acct_attrs.array_char_value(1) := p_source_15;
32760 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
32761 l_rec_acct_attrs.array_num_value(2) :=
32762 xla_ae_sources_pkg.GetSystemSourceNum(
32763 p_source_code => 'XLA_EVENT_APPL_ID'
32764 , p_source_type_code => 'Y'
32765 , p_source_application_id => 602
32766 );
32767 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
32768 l_rec_acct_attrs.array_char_value(3) := p_source_17;
32769 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
32770 l_rec_acct_attrs.array_char_value(4) :=
32771 xla_ae_sources_pkg.GetSystemSourceChar(
32772 p_source_code => 'XLA_ENTITY_CODE'
32773 , p_source_type_code => 'Y'
32774 , p_source_application_id => 602
32775 );
32776 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
32777 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
32778 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
32779 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
32780 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
32781 l_rec_acct_attrs.array_num_value(7) := p_source_21;
32785 l_rec_acct_attrs.array_char_value(9) := p_source_23;
32782 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32783 l_rec_acct_attrs.array_char_value(8) := p_source_22;
32784 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
32786 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
32787 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
32788 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32789 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
32790 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
32791 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
32792 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
32793 l_rec_acct_attrs.array_char_value(13) := p_source_17;
32794 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
32795 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
32796 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
32797 l_rec_acct_attrs.array_num_value(15) := p_source_26;
32798 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
32799 l_rec_acct_attrs.array_char_value(16) := p_source_27;
32800 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
32801 l_rec_acct_attrs.array_num_value(17) := p_source_28;
32802 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
32803 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
32804 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
32805 l_rec_acct_attrs.array_num_value(19) := p_source_26;
32806 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
32807 l_rec_acct_attrs.array_char_value(20) := p_source_27;
32808 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
32809 l_rec_acct_attrs.array_num_value(21) := p_source_28;
32810 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
32811 l_rec_acct_attrs.array_char_value(22) := p_source_29;
32812 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
32813 l_rec_acct_attrs.array_num_value(23) := p_source_26;
32814 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
32815 l_rec_acct_attrs.array_char_value(24) := p_source_27;
32816 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
32817 l_rec_acct_attrs.array_num_value(25) := p_source_28;
32818 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
32819 l_rec_acct_attrs.array_char_value(26) := p_source_31;
32820 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
32821 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
32822 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
32823 l_rec_acct_attrs.array_char_value(28) := p_source_22;
32824 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
32825 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
32826 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
32827 l_rec_acct_attrs.array_num_value(30) := p_source_32;
32828 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
32829 l_rec_acct_attrs.array_num_value(31) := p_source_32;
32830
32831 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32832 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32833
32834 ---------------------------------------------------------------------------------------------------------------
32835 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32836 ---------------------------------------------------------------------------------------------------------------
32837 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32838
32839 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32840 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32841
32842 IF xla_accounting_cache_pkg.GetValueChar
32843 (p_source_code => 'LEDGER_CATEGORY_CODE'
32844 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32845 AND l_bflow_method_code = 'PRIOR_ENTRY'
32846 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32847 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32848 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32849 )
32850 THEN
32851 xla_ae_lines_pkg.BflowUpgEntry
32852 (p_business_method_code => l_bflow_method_code
32853 ,p_business_class_code => l_bflow_class_code
32854 ,p_balance_type => l_balance_type_code);
32855 ELSE
32856 NULL;
32857 XLA_AE_LINES_PKG.business_flow_validation(
32858 p_business_method_code => l_bflow_method_code
32859 ,p_business_class_code => l_bflow_class_code
32860 ,p_inherit_description_flag => l_inherit_desc_flag);
32861 END IF;
32862
32863 --
32864 -- call analytical criteria
32865 --
32866 -- Inherited Analytical Criteria for business flow method of Prior Entry.
32867 --
32868 -- call description
32869 --
32870 -- No description or it is inherited.
32871 --
32872 -- call ADRs
32873 -- Bug 4922099
32874 --
32875 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32876 (NVL(l_actual_upg_option, 'N') = 'O') OR
32877 (NVL(l_enc_upg_option, 'N') = 'O')
32878 )
32879 THEN
32880 NULL;
32881 --
32882 --
32883
32884 --
32885 --
32886 END IF;
32890 (NVL(l_enc_upg_option, 'N') = 'O')
32887 --
32888 -- Bug 4922099
32889 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32891 ) AND
32892 (l_bflow_method_code = 'PRIOR_ENTRY')
32893 )
32894 THEN
32895 IF
32896 --
32897 1 = 1
32898 --
32899 THEN
32900 xla_accounting_err_pkg.build_message
32901 (p_appli_s_name => 'XLA'
32902 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32903 ,p_token_1 => 'LINE_NUMBER'
32904 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32905 ,p_token_2 => 'LINE_TYPE_NAME'
32906 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32907 l_component_type
32908 ,l_component_code
32909 ,l_component_type_code
32910 ,l_component_appl_id
32911 ,l_amb_context_code
32912 ,l_entity_code
32913 ,l_event_class_code
32914 )
32915 ,p_token_3 => 'OWNER'
32916 ,p_value_3 => xla_lookups_pkg.get_meaning(
32917 p_lookup_type => 'XLA_OWNER_TYPE'
32918 ,p_lookup_code => l_component_type_code
32919 )
32920 ,p_token_4 => 'PRODUCT_NAME'
32921 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32922 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32923 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32924 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32925 ,p_ae_header_id => NULL
32926 );
32927
32928 IF (C_LEVEL_ERROR>= g_log_level) THEN
32929 trace
32930 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32931 ,p_level => C_LEVEL_ERROR
32932 ,p_module => l_log_module);
32933 END IF;
32934 END IF;
32935 END IF;
32936 --
32937 --
32938 ------------------------------------------------------------------------------------------------
32939 -- 4219869 Business Flow
32940 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32941 -- Prior Entry. Currently, the following code is always generated.
32942 ------------------------------------------------------------------------------------------------
32943 -- No ValidateCurrentLine for business flow method of Prior Entry
32944
32945 ------------------------------------------------------------------------------------
32946 -- 4219869 Business Flow
32947 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32948 ------------------------------------------------------------------------------------
32949 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32950
32951 ----------------------------------------------------------------------------------
32952 -- 4219869 Business Flow
32953 -- Update journal entry status -- Need to generate this within IF <condition>
32954 ----------------------------------------------------------------------------------
32955 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32956 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32957 ,p_balance_type_code => l_balance_type_code
32958 );
32959
32960 -------------------------------------------------------------------------------------------
32961 -- 4262811 - Generate the Accrual Reversal lines
32962 -------------------------------------------------------------------------------------------
32963 BEGIN
32964 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32965 (g_array_event(p_event_id).array_value_num('header_index'));
32966 IF l_acc_rev_flag IS NULL THEN
32967 l_acc_rev_flag := 'N';
32968 END IF;
32969 EXCEPTION
32970 WHEN OTHERS THEN
32971 l_acc_rev_flag := 'N';
32972 END;
32973 --
32974 IF (l_acc_rev_flag = 'Y') THEN
32975
32976 -- 4645092 ------------------------------------------------------------------------------
32977 -- To allow MPA report to determine if it should generate report process
32978 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32979 ------------------------------------------------------------------------------------------
32980
32981 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32982 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32983
32984 --
32985 -- Update the line information that should be overwritten
32986 --
32987 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32988 p_header_num => 1);
32989 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32990
32991 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32992
32993 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32994 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32995 END IF;
32996
32997 --
32998 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32999 --
33000 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33001 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33002 ELSE
33003 ---------------------------------------------------------------------------------------------------
33004 -- 4262811a Switch Sign
33005 ---------------------------------------------------------------------------------------------------
33006 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33007 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33008 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33009 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33010 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33011 -- 5132302
33012 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33013 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33014
33015 END IF;
33016
33017 -- 4955764
33018 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33019 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33020
33021
33022 XLA_AE_LINES_PKG.ValidateCurrentLine;
33023 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33024
33025 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33026 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33027 ,p_balance_type_code => l_balance_type_code);
33028
33029 END IF;
33030
33031 -----------------------------------------------------------------------------------------
33032 -- 4262811 Multiperiod Accounting
33033 -----------------------------------------------------------------------------------------
33034 -- No MPA option is assigned.
33035
33036
33037 END IF;
33038 END IF;
33039 --
33040
33041 --
33042 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33043 trace
33044 (p_msg => 'END of AcctLineType_62'
33045 ,p_level => C_LEVEL_PROCEDURE
33046 ,p_module => l_log_module);
33047 END IF;
33048 --
33049 EXCEPTION
33050 WHEN xla_exceptions_pkg.application_exception THEN
33051 RAISE;
33052 WHEN OTHERS THEN
33053 xla_exceptions_pkg.raise_message
33054 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_62');
33055 END AcctLineType_62;
33056 --
33057
33058 ---------------------------------------
33059 --
33060 -- PRIVATE FUNCTION
33061 -- AcctLineType_63
33062 --
33063 ---------------------------------------
33064 PROCEDURE AcctLineType_63 (
33065 p_application_id IN NUMBER
33066 ,p_event_id IN NUMBER
33067 ,p_calculate_acctd_flag IN VARCHAR2
33068 ,p_calculate_g_l_flag IN VARCHAR2
33069 ,p_actual_flag IN OUT VARCHAR2
33070 ,p_balance_type_code OUT VARCHAR2
33071 ,p_gain_or_loss_ref OUT VARCHAR2
33072
33073 --Budget Account
33074 , p_source_9 IN NUMBER
33075 --Main Or Backing Code
33076 , p_source_13 IN VARCHAR2
33080 , p_source_17 IN VARCHAR2
33077 --Accounting Reversal Flag
33078 , p_source_15 IN VARCHAR2
33079 --Distribution Link Type
33081 --PO Distribution Identifier
33082 , p_source_19 IN NUMBER
33083 --Applied To Application Identifier
33084 , p_source_21 IN NUMBER
33085 --Applied To Distribution Link Type
33086 , p_source_22 IN VARCHAR2
33087 --Applied To Entity Code
33088 , p_source_23 IN VARCHAR2
33089 --Applied To Distribution Identifier 1
33090 , p_source_24 IN NUMBER
33091 --Applied To Header Identifier 1
33092 , p_source_25 IN NUMBER
33093 --Entered Amount
33094 , p_source_26 IN NUMBER
33095 --Currency Code
33096 , p_source_27 IN VARCHAR2
33097 --Accounted Amount
33098 , p_source_28 IN NUMBER
33099 --PO Encumbrance Upgrade Option
33100 , p_source_29 IN VARCHAR2
33101 --JFMIP Reference
33102 , p_source_31 IN VARCHAR2
33103 --PO Upgrade Encumbrance Type Identifier
33104 , p_source_32 IN NUMBER
33105 --Allocated to Main Document Distribution Type
33106 , p_source_33 IN VARCHAR2
33107 --Allocated to Main Document Distribution Identifier
33108 , p_source_34 IN NUMBER
33109 --PO Release Identifier
33110 , p_source_41 IN NUMBER
33111 )
33112 IS
33113
33114 l_component_type VARCHAR2(80);
33115 l_component_code VARCHAR2(30);
33116 l_component_type_code VARCHAR2(1);
33117 l_component_appl_id INTEGER;
33118 l_amb_context_code VARCHAR2(30);
33119 l_entity_code VARCHAR2(30);
33120 l_event_class_code VARCHAR2(30);
33121 l_ae_header_id NUMBER;
33122 l_event_type_code VARCHAR2(30);
33123 l_line_definition_code VARCHAR2(30);
33124 l_line_definition_owner_code VARCHAR2(1);
33125 --
33126 -- adr variables
33127 l_segment VARCHAR2(30);
33128 l_ccid NUMBER;
33129 l_adr_transaction_coa_id NUMBER;
33130 l_adr_accounting_coa_id NUMBER;
33131 l_adr_flexfield_segment_code VARCHAR2(30);
33132 l_adr_flex_value_set_id NUMBER;
33133 l_adr_value_type_code VARCHAR2(30);
33134 l_adr_value_combination_id NUMBER;
33135 l_adr_value_segment_code VARCHAR2(30);
33136
33137 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33138 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33139 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33140 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33141
33142 -- 4262811 Variables ------------------------------------------------------------------------------------------
33143 l_entered_amt_idx NUMBER;
33144 l_accted_amt_idx NUMBER;
33145 l_acc_rev_flag VARCHAR2(1);
33146 l_accrual_line_num NUMBER;
33147 l_tmp_amt NUMBER;
33148 l_acc_rev_natural_side_code VARCHAR2(1);
33149
33150 l_num_entries NUMBER;
33151 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33152 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33153 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33154 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33155 l_recog_line_1 NUMBER;
33156 l_recog_line_2 NUMBER;
33157
33158 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33159 l_bflow_applied_to_amt NUMBER; -- 5132302
33160 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33161
33162 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33163
33164 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33165 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33166
33167 ---------------------------------------------------------------------------------------------------------------
33168
33169
33170 --
33171 -- bulk performance
33172 --
33173 l_balance_type_code VARCHAR2(1);
33174 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33175 l_log_module VARCHAR2(240);
33176
33177 --
33178 -- Upgrade strategy
33179 --
33180 l_actual_upg_option VARCHAR2(1);
33181 l_enc_upg_option VARCHAR2(1);
33182
33183 --
33184 BEGIN
33185 --
33186 IF g_log_enabled THEN
33187 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
33188 END IF;
33189 --
33190 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33191
33192 trace
33193 (p_msg => 'BEGIN of AcctLineType_63'
33194 ,p_level => C_LEVEL_PROCEDURE
33195 ,p_module => l_log_module);
33196
33197 END IF;
33198 --
33199 l_component_type := 'AMB_JLT';
33200 l_component_code := 'FV_REL_REINST_PO_PA_DR';
33201 l_component_type_code := 'S';
33202 l_component_appl_id := 201;
33203 l_amb_context_code := 'DEFAULT';
33204 l_entity_code := 'RELEASE';
33205 l_event_class_code := 'RELEASE';
33206 l_event_type_code := 'RELEASE_ALL';
33207 l_line_definition_owner_code := 'S';
33208 l_line_definition_code := 'FV_RELEASE_ALL';
33209 --
33210 l_balance_type_code := 'A';
33211 l_segment := NULL;
33212 l_ccid := NULL;
33213 l_adr_transaction_coa_id := NULL;
33214 l_adr_accounting_coa_id := NULL;
33218 l_adr_value_combination_id := NULL;
33215 l_adr_flexfield_segment_code := NULL;
33216 l_adr_flex_value_set_id := NULL;
33217 l_adr_value_type_code := NULL;
33219 l_adr_value_segment_code := NULL;
33220
33221 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
33222 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
33223 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
33224 l_budgetary_control_flag := 'Y';
33225
33226 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33227 l_bflow_applied_to_amt := NULL; -- 5132302
33228 l_entered_amt_idx := NULL; -- 4262811
33229 l_accted_amt_idx := NULL; -- 4262811
33230 l_acc_rev_flag := NULL; -- 4262811
33231 l_accrual_line_num := NULL; -- 4262811
33232 l_tmp_amt := NULL; -- 4262811
33233 --
33234
33235 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33236 l_balance_type_code <> 'B' THEN
33237 IF (NVL(
33238 xla_ae_sources_pkg.GetSystemSourceChar(
33239 p_source_code => 'XLA_EVENT_TYPE_CODE'
33240 , p_source_type_code => 'Y'
33241 , p_source_application_id => 602
33242 ),'
33243 ') = 'RELEASE_UNRESERVED' OR
33244 NVL(
33245 xla_ae_sources_pkg.GetSystemSourceChar(
33246 p_source_code => 'XLA_EVENT_TYPE_CODE'
33247 , p_source_type_code => 'Y'
33248 , p_source_application_id => 602
33249 ),'
33250 ') = 'RELEASE_REJECTED' OR
33251 NVL(
33252 xla_ae_sources_pkg.GetSystemSourceChar(
33253 p_source_code => 'XLA_EVENT_TYPE_CODE'
33254 , p_source_type_code => 'Y'
33255 , p_source_application_id => 602
33256 ),'
33257 ') = 'RELEASE_INV_CANCELLED') AND
33258 (NVL(p_source_13,'
33259 ') = 'B_PO' OR
33260 NVL(p_source_13,'
33261 ') = 'B_PA')
33262 THEN
33263
33264 --
33265 XLA_AE_LINES_PKG.SetNewLine;
33266
33267 p_balance_type_code := l_balance_type_code;
33268 -- set the flag so later we will know whether the gain loss line needs to be created
33269
33270 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33271 p_actual_flag :='A';
33272 END IF;
33273
33274 --
33275 -- bulk performance
33276 --
33277 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33278 p_header_num => 0); -- 4262811
33279 --
33280 -- set accounting line options
33281 --
33282 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33283 p_natural_side_code => 'D'
33284 , p_gain_or_loss_flag => 'N'
33285 , p_gl_transfer_mode_code => 'S'
33286 , p_acct_entry_type_code => 'A'
33287 , p_switch_side_flag => 'N'
33288 , p_merge_duplicate_code => 'N'
33289 );
33290 --
33291 l_acc_rev_natural_side_code := 'C'; -- 4262811
33292 --
33293 --
33294 -- set accounting line type info
33295 --
33296 xla_ae_lines_pkg.SetAcctLineType
33297 (p_component_type => l_component_type
33298 ,p_event_type_code => l_event_type_code
33299 ,p_line_definition_owner_code => l_line_definition_owner_code
33300 ,p_line_definition_code => l_line_definition_code
33301 ,p_accounting_line_code => l_component_code
33302 ,p_accounting_line_type_code => l_component_type_code
33303 ,p_accounting_line_appl_id => l_component_appl_id
33304 ,p_amb_context_code => l_amb_context_code
33305 ,p_entity_code => l_entity_code
33306 ,p_event_class_code => l_event_class_code);
33307 --
33308 -- set accounting class
33309 --
33310 xla_ae_lines_pkg.SetAcctClass(
33311 p_accounting_class_code => 'PURCHASE_ORDER'
33312 , p_ae_header_id => l_ae_header_id
33313 );
33314
33315 --
33316 -- set rounding class
33317 --
33318 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33319 'PURCHASE_ORDER';
33320
33321 --
33322 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33323 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33324 --
33325 -- bulk performance
33326 --
33327 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33328
33329 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33330 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33331
33332 -- 4955764
33333 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33334 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33335
33336 -- 4458381 Public Sector Enh
33337
33338 --
33339 -- set accounting attributes for the line type
33340 --
33341 l_entered_amt_idx := 23;
33342 l_accted_amt_idx := 25;
33343 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33344 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33345 l_rec_acct_attrs.array_char_value(1) := p_source_15;
33346 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
33347 l_rec_acct_attrs.array_num_value(2) :=
33348 xla_ae_sources_pkg.GetSystemSourceNum(
33349 p_source_code => 'XLA_EVENT_APPL_ID'
33350 , p_source_type_code => 'Y'
33354 l_rec_acct_attrs.array_char_value(3) := p_source_33;
33351 , p_source_application_id => 602
33352 );
33353 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
33355 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
33356 l_rec_acct_attrs.array_char_value(4) :=
33357 xla_ae_sources_pkg.GetSystemSourceChar(
33358 p_source_code => 'XLA_ENTITY_CODE'
33359 , p_source_type_code => 'Y'
33360 , p_source_application_id => 602
33361 );
33362 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
33363 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
33364 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
33365 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
33366 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
33367 l_rec_acct_attrs.array_num_value(7) := p_source_21;
33368 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33369 l_rec_acct_attrs.array_char_value(8) := p_source_22;
33370 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
33371 l_rec_acct_attrs.array_char_value(9) := p_source_23;
33372 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
33373 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
33374 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33375 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
33376 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
33377 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
33378 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
33379 l_rec_acct_attrs.array_char_value(13) := p_source_17;
33380 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
33381 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
33382 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
33383 l_rec_acct_attrs.array_num_value(15) := p_source_26;
33384 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
33385 l_rec_acct_attrs.array_char_value(16) := p_source_27;
33386 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
33387 l_rec_acct_attrs.array_num_value(17) := p_source_28;
33388 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
33389 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
33390 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
33391 l_rec_acct_attrs.array_num_value(19) := p_source_26;
33392 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
33393 l_rec_acct_attrs.array_char_value(20) := p_source_27;
33394 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
33395 l_rec_acct_attrs.array_num_value(21) := p_source_28;
33396 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
33397 l_rec_acct_attrs.array_char_value(22) := p_source_29;
33398 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
33399 l_rec_acct_attrs.array_num_value(23) := p_source_26;
33400 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
33401 l_rec_acct_attrs.array_char_value(24) := p_source_27;
33402 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
33403 l_rec_acct_attrs.array_num_value(25) := p_source_28;
33404 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
33405 l_rec_acct_attrs.array_char_value(26) := p_source_31;
33406 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
33407 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
33408 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
33409 l_rec_acct_attrs.array_char_value(28) := p_source_22;
33410 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
33411 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
33412 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
33413 l_rec_acct_attrs.array_num_value(30) := p_source_32;
33414 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
33415 l_rec_acct_attrs.array_num_value(31) := p_source_32;
33416
33417 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33418 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33419
33420 ---------------------------------------------------------------------------------------------------------------
33421 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33422 ---------------------------------------------------------------------------------------------------------------
33423 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33424
33425 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33426 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33427
33428 IF xla_accounting_cache_pkg.GetValueChar
33429 (p_source_code => 'LEDGER_CATEGORY_CODE'
33430 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33431 AND l_bflow_method_code = 'PRIOR_ENTRY'
33432 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33433 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33434 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33435 )
33436 THEN
33437 xla_ae_lines_pkg.BflowUpgEntry
33438 (p_business_method_code => l_bflow_method_code
33439 ,p_business_class_code => l_bflow_class_code
33440 ,p_balance_type => l_balance_type_code);
33441 ELSE
33442 NULL;
33443 XLA_AE_LINES_PKG.business_flow_validation(
33444 p_business_method_code => l_bflow_method_code
33445 ,p_business_class_code => l_bflow_class_code
33446 ,p_inherit_description_flag => l_inherit_desc_flag);
33447 END IF;
33448
33449 --
33450 -- call analytical criteria
33451 --
33452 -- Inherited Analytical Criteria for business flow method of Prior Entry.
33453 --
33454 -- call description
33455 --
33456 -- No description or it is inherited.
33457 --
33458 -- call ADRs
33459 -- Bug 4922099
33460 --
33461 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33462 (NVL(l_actual_upg_option, 'N') = 'O') OR
33463 (NVL(l_enc_upg_option, 'N') = 'O')
33464 )
33465 THEN
33466 NULL;
33467 --
33468 --
33469
33470 --
33471 --
33472 END IF;
33473 --
33474 -- Bug 4922099
33475 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33476 (NVL(l_enc_upg_option, 'N') = 'O')
33477 ) AND
33478 (l_bflow_method_code = 'PRIOR_ENTRY')
33479 )
33480 THEN
33481 IF
33482 --
33483 1 = 1
33484 --
33485 THEN
33486 xla_accounting_err_pkg.build_message
33487 (p_appli_s_name => 'XLA'
33488 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33489 ,p_token_1 => 'LINE_NUMBER'
33490 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33491 ,p_token_2 => 'LINE_TYPE_NAME'
33492 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33493 l_component_type
33494 ,l_component_code
33495 ,l_component_type_code
33496 ,l_component_appl_id
33497 ,l_amb_context_code
33498 ,l_entity_code
33499 ,l_event_class_code
33500 )
33501 ,p_token_3 => 'OWNER'
33502 ,p_value_3 => xla_lookups_pkg.get_meaning(
33503 p_lookup_type => 'XLA_OWNER_TYPE'
33504 ,p_lookup_code => l_component_type_code
33505 )
33506 ,p_token_4 => 'PRODUCT_NAME'
33507 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33508 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33509 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33510 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33511 ,p_ae_header_id => NULL
33512 );
33513
33514 IF (C_LEVEL_ERROR>= g_log_level) THEN
33515 trace
33516 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33517 ,p_level => C_LEVEL_ERROR
33518 ,p_module => l_log_module);
33519 END IF;
33520 END IF;
33521 END IF;
33522 --
33523 --
33524 ------------------------------------------------------------------------------------------------
33525 -- 4219869 Business Flow
33526 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33527 -- Prior Entry. Currently, the following code is always generated.
33528 ------------------------------------------------------------------------------------------------
33529 -- No ValidateCurrentLine for business flow method of Prior Entry
33530
33531 ------------------------------------------------------------------------------------
33532 -- 4219869 Business Flow
33533 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33534 ------------------------------------------------------------------------------------
33535 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33536
33537 ----------------------------------------------------------------------------------
33538 -- 4219869 Business Flow
33539 -- Update journal entry status -- Need to generate this within IF <condition>
33540 ----------------------------------------------------------------------------------
33541 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33542 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33543 ,p_balance_type_code => l_balance_type_code
33544 );
33545
33546 -------------------------------------------------------------------------------------------
33547 -- 4262811 - Generate the Accrual Reversal lines
33548 -------------------------------------------------------------------------------------------
33549 BEGIN
33550 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33551 (g_array_event(p_event_id).array_value_num('header_index'));
33552 IF l_acc_rev_flag IS NULL THEN
33553 l_acc_rev_flag := 'N';
33554 END IF;
33555 EXCEPTION
33556 WHEN OTHERS THEN
33557 l_acc_rev_flag := 'N';
33558 END;
33559 --
33560 IF (l_acc_rev_flag = 'Y') THEN
33561
33562 -- 4645092 ------------------------------------------------------------------------------
33563 -- To allow MPA report to determine if it should generate report process
33564 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33565 ------------------------------------------------------------------------------------------
33566
33567 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33568 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33569
33570 --
33571 -- Update the line information that should be overwritten
33572 --
33573 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33574 p_header_num => 1);
33575 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33576
33577 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33578
33579 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33580 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33581 END IF;
33582
33583 --
33584 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33585 --
33586 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33587 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33588 ELSE
33589 ---------------------------------------------------------------------------------------------------
33590 -- 4262811a Switch Sign
33591 ---------------------------------------------------------------------------------------------------
33592 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33593 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33594 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33595 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33596 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33600
33597 -- 5132302
33598 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33599 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33601 END IF;
33602
33603 -- 4955764
33604 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33605 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33606
33607
33608 XLA_AE_LINES_PKG.ValidateCurrentLine;
33609 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33610
33611 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33612 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33613 ,p_balance_type_code => l_balance_type_code);
33614
33615 END IF;
33616
33617 -----------------------------------------------------------------------------------------
33618 -- 4262811 Multiperiod Accounting
33619 -----------------------------------------------------------------------------------------
33620 -- No MPA option is assigned.
33621
33622
33623 END IF;
33624 END IF;
33625 --
33626
33627 --
33628 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33629 trace
33630 (p_msg => 'END of AcctLineType_63'
33631 ,p_level => C_LEVEL_PROCEDURE
33632 ,p_module => l_log_module);
33633 END IF;
33634 --
33635 EXCEPTION
33636 WHEN xla_exceptions_pkg.application_exception THEN
33637 RAISE;
33638 WHEN OTHERS THEN
33639 xla_exceptions_pkg.raise_message
33640 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_63');
33641 END AcctLineType_63;
33642 --
33643
33644 ---------------------------------------
33645 --
33646 -- PRIVATE FUNCTION
33647 -- AcctLineType_64
33648 --
33649 ---------------------------------------
33650 PROCEDURE AcctLineType_64 (
33651 p_application_id IN NUMBER
33652 ,p_event_id IN NUMBER
33653 ,p_calculate_acctd_flag IN VARCHAR2
33654 ,p_calculate_g_l_flag IN VARCHAR2
33655 ,p_actual_flag IN OUT VARCHAR2
33656 ,p_balance_type_code OUT VARCHAR2
33657 ,p_gain_or_loss_ref OUT VARCHAR2
33658
33659 --Budget Account
33660 , p_source_9 IN NUMBER
33661 --Main Or Backing Code
33662 , p_source_13 IN VARCHAR2
33663 --Accounting Reversal Flag
33664 , p_source_15 IN VARCHAR2
33665 --Distribution Link Type
33666 , p_source_17 IN VARCHAR2
33667 --PO Distribution Identifier
33668 , p_source_19 IN NUMBER
33669 --Applied To Application Identifier
33670 , p_source_21 IN NUMBER
33671 --Applied To Distribution Link Type
33672 , p_source_22 IN VARCHAR2
33673 --Applied To Entity Code
33674 , p_source_23 IN VARCHAR2
33675 --Applied To Distribution Identifier 1
33676 , p_source_24 IN NUMBER
33677 --Applied To Header Identifier 1
33678 , p_source_25 IN NUMBER
33679 --Entered Amount
33680 , p_source_26 IN NUMBER
33681 --Currency Code
33682 , p_source_27 IN VARCHAR2
33683 --Accounted Amount
33684 , p_source_28 IN NUMBER
33685 --PO Encumbrance Upgrade Option
33686 , p_source_29 IN VARCHAR2
33687 --JFMIP Reference
33688 , p_source_31 IN VARCHAR2
33689 --PO Upgrade Encumbrance Type Identifier
33690 , p_source_32 IN NUMBER
33691 --Allocated to Main Document Distribution Type
33692 , p_source_33 IN VARCHAR2
33693 --Allocated to Main Document Distribution Identifier
33694 , p_source_34 IN NUMBER
33695 --PO Release Identifier
33696 , p_source_41 IN NUMBER
33697 )
33698 IS
33699
33700 l_component_type VARCHAR2(80);
33701 l_component_code VARCHAR2(30);
33702 l_component_type_code VARCHAR2(1);
33703 l_component_appl_id INTEGER;
33704 l_amb_context_code VARCHAR2(30);
33705 l_entity_code VARCHAR2(30);
33706 l_event_class_code VARCHAR2(30);
33707 l_ae_header_id NUMBER;
33708 l_event_type_code VARCHAR2(30);
33709 l_line_definition_code VARCHAR2(30);
33710 l_line_definition_owner_code VARCHAR2(1);
33711 --
33712 -- adr variables
33713 l_segment VARCHAR2(30);
33714 l_ccid NUMBER;
33715 l_adr_transaction_coa_id NUMBER;
33716 l_adr_accounting_coa_id NUMBER;
33717 l_adr_flexfield_segment_code VARCHAR2(30);
33718 l_adr_flex_value_set_id NUMBER;
33719 l_adr_value_type_code VARCHAR2(30);
33720 l_adr_value_combination_id NUMBER;
33721 l_adr_value_segment_code VARCHAR2(30);
33722
33723 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33724 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33725 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33726 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33727
33728 -- 4262811 Variables ------------------------------------------------------------------------------------------
33729 l_entered_amt_idx NUMBER;
33730 l_accted_amt_idx NUMBER;
33731 l_acc_rev_flag VARCHAR2(1);
33732 l_accrual_line_num NUMBER;
33733 l_tmp_amt NUMBER;
33734 l_acc_rev_natural_side_code VARCHAR2(1);
33735
33736 l_num_entries NUMBER;
33737 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33738 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33742 l_recog_line_2 NUMBER;
33739 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33740 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33741 l_recog_line_1 NUMBER;
33743
33744 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33745 l_bflow_applied_to_amt NUMBER; -- 5132302
33746 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33747
33748 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33749
33750 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33751 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33752
33753 ---------------------------------------------------------------------------------------------------------------
33754
33755
33756 --
33757 -- bulk performance
33758 --
33759 l_balance_type_code VARCHAR2(1);
33760 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33761 l_log_module VARCHAR2(240);
33762
33763 --
33764 -- Upgrade strategy
33765 --
33766 l_actual_upg_option VARCHAR2(1);
33767 l_enc_upg_option VARCHAR2(1);
33768
33769 --
33770 BEGIN
33771 --
33772 IF g_log_enabled THEN
33773 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
33774 END IF;
33775 --
33776 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33777
33778 trace
33779 (p_msg => 'BEGIN of AcctLineType_64'
33780 ,p_level => C_LEVEL_PROCEDURE
33781 ,p_module => l_log_module);
33782
33783 END IF;
33784 --
33785 l_component_type := 'AMB_JLT';
33786 l_component_code := 'FV_REL_REINST_REQ_CR';
33787 l_component_type_code := 'S';
33788 l_component_appl_id := 201;
33789 l_amb_context_code := 'DEFAULT';
33790 l_entity_code := 'RELEASE';
33791 l_event_class_code := 'RELEASE';
33792 l_event_type_code := 'RELEASE_ALL';
33793 l_line_definition_owner_code := 'S';
33794 l_line_definition_code := 'FV_RELEASE_ALL';
33795 --
33796 l_balance_type_code := 'A';
33797 l_segment := NULL;
33798 l_ccid := NULL;
33799 l_adr_transaction_coa_id := NULL;
33800 l_adr_accounting_coa_id := NULL;
33801 l_adr_flexfield_segment_code := NULL;
33802 l_adr_flex_value_set_id := NULL;
33803 l_adr_value_type_code := NULL;
33804 l_adr_value_combination_id := NULL;
33805 l_adr_value_segment_code := NULL;
33806
33807 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
33808 l_bflow_class_code := 'FV_REQ_DR'; -- 4219869 Business Flow
33809 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
33810 l_budgetary_control_flag := 'Y';
33811
33812 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33813 l_bflow_applied_to_amt := NULL; -- 5132302
33814 l_entered_amt_idx := NULL; -- 4262811
33815 l_accted_amt_idx := NULL; -- 4262811
33816 l_acc_rev_flag := NULL; -- 4262811
33817 l_accrual_line_num := NULL; -- 4262811
33818 l_tmp_amt := NULL; -- 4262811
33819 --
33820
33821 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33822 l_balance_type_code <> 'B' THEN
33823 IF (NVL(
33824 xla_ae_sources_pkg.GetSystemSourceChar(
33825 p_source_code => 'XLA_EVENT_TYPE_CODE'
33826 , p_source_type_code => 'Y'
33827 , p_source_application_id => 602
33828 ),'
33829 ') = 'RELEASE_REJECTED' OR
33830 NVL(
33831 xla_ae_sources_pkg.GetSystemSourceChar(
33832 p_source_code => 'XLA_EVENT_TYPE_CODE'
33833 , p_source_type_code => 'Y'
33834 , p_source_application_id => 602
33835 ),'
33836 ') = 'RELEASE_INV_CANCELLED' OR
33837 NVL(
33838 xla_ae_sources_pkg.GetSystemSourceChar(
33839 p_source_code => 'XLA_EVENT_TYPE_CODE'
33840 , p_source_type_code => 'Y'
33841 , p_source_application_id => 602
33842 ),'
33843 ') = 'RELEASE_UNRESERVED') AND
33844 NVL(p_source_13,'
33845 ') = 'B_REQ'
33846 THEN
33847
33848 --
33849 XLA_AE_LINES_PKG.SetNewLine;
33850
33851 p_balance_type_code := l_balance_type_code;
33852 -- set the flag so later we will know whether the gain loss line needs to be created
33853
33854 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33855 p_actual_flag :='A';
33856 END IF;
33857
33858 --
33859 -- bulk performance
33860 --
33861 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33862 p_header_num => 0); -- 4262811
33863 --
33864 -- set accounting line options
33865 --
33866 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33867 p_natural_side_code => 'C'
33868 , p_gain_or_loss_flag => 'N'
33869 , p_gl_transfer_mode_code => 'S'
33870 , p_acct_entry_type_code => 'A'
33871 , p_switch_side_flag => 'N'
33872 , p_merge_duplicate_code => 'N'
33873 );
33874 --
33875 l_acc_rev_natural_side_code := 'D'; -- 4262811
33876 --
33877 --
33878 -- set accounting line type info
33879 --
33880 xla_ae_lines_pkg.SetAcctLineType
33881 (p_component_type => l_component_type
33882 ,p_event_type_code => l_event_type_code
33886 ,p_accounting_line_type_code => l_component_type_code
33883 ,p_line_definition_owner_code => l_line_definition_owner_code
33884 ,p_line_definition_code => l_line_definition_code
33885 ,p_accounting_line_code => l_component_code
33887 ,p_accounting_line_appl_id => l_component_appl_id
33888 ,p_amb_context_code => l_amb_context_code
33889 ,p_entity_code => l_entity_code
33890 ,p_event_class_code => l_event_class_code);
33891 --
33892 -- set accounting class
33893 --
33894 xla_ae_lines_pkg.SetAcctClass(
33895 p_accounting_class_code => 'PURCHASE_ORDER'
33896 , p_ae_header_id => l_ae_header_id
33897 );
33898
33899 --
33900 -- set rounding class
33901 --
33902 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33903 'PURCHASE_ORDER';
33904
33905 --
33906 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33907 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33908 --
33909 -- bulk performance
33910 --
33911 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33912
33913 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33914 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33915
33916 -- 4955764
33917 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33918 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33919
33920 -- 4458381 Public Sector Enh
33921
33922 --
33923 -- set accounting attributes for the line type
33924 --
33925 l_entered_amt_idx := 23;
33926 l_accted_amt_idx := 25;
33927 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33928 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33929 l_rec_acct_attrs.array_char_value(1) := p_source_15;
33930 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
33931 l_rec_acct_attrs.array_num_value(2) :=
33932 xla_ae_sources_pkg.GetSystemSourceNum(
33933 p_source_code => 'XLA_EVENT_APPL_ID'
33934 , p_source_type_code => 'Y'
33935 , p_source_application_id => 602
33936 );
33937 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
33938 l_rec_acct_attrs.array_char_value(3) := p_source_33;
33939 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
33940 l_rec_acct_attrs.array_char_value(4) :=
33941 xla_ae_sources_pkg.GetSystemSourceChar(
33942 p_source_code => 'XLA_ENTITY_CODE'
33943 , p_source_type_code => 'Y'
33944 , p_source_application_id => 602
33945 );
33946 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
33947 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
33948 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
33949 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
33950 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
33951 l_rec_acct_attrs.array_num_value(7) := p_source_21;
33952 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33953 l_rec_acct_attrs.array_char_value(8) := p_source_22;
33954 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
33955 l_rec_acct_attrs.array_char_value(9) := p_source_23;
33956 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
33957 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
33958 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33959 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
33960 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
33961 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
33962 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
33963 l_rec_acct_attrs.array_char_value(13) := p_source_17;
33964 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
33965 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
33966 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
33967 l_rec_acct_attrs.array_num_value(15) := p_source_26;
33968 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
33969 l_rec_acct_attrs.array_char_value(16) := p_source_27;
33970 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
33971 l_rec_acct_attrs.array_num_value(17) := p_source_28;
33972 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
33973 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
33974 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
33975 l_rec_acct_attrs.array_num_value(19) := p_source_26;
33976 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
33977 l_rec_acct_attrs.array_char_value(20) := p_source_27;
33978 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
33979 l_rec_acct_attrs.array_num_value(21) := p_source_28;
33980 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
33981 l_rec_acct_attrs.array_char_value(22) := p_source_29;
33982 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
33983 l_rec_acct_attrs.array_num_value(23) := p_source_26;
33984 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
33985 l_rec_acct_attrs.array_char_value(24) := p_source_27;
33986 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
33987 l_rec_acct_attrs.array_num_value(25) := p_source_28;
33988 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
33989 l_rec_acct_attrs.array_char_value(26) := p_source_31;
33990 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
33991 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
33992 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
33993 l_rec_acct_attrs.array_char_value(28) := p_source_22;
33994 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
33995 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
33996 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
33997 l_rec_acct_attrs.array_num_value(30) := p_source_32;
33998 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
33999 l_rec_acct_attrs.array_num_value(31) := p_source_32;
34000
34001 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34002 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34003
34004 ---------------------------------------------------------------------------------------------------------------
34005 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34006 ---------------------------------------------------------------------------------------------------------------
34007 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34008
34009 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34010 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34011
34012 IF xla_accounting_cache_pkg.GetValueChar
34013 (p_source_code => 'LEDGER_CATEGORY_CODE'
34014 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34015 AND l_bflow_method_code = 'PRIOR_ENTRY'
34016 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34017 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34018 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34019 )
34020 THEN
34021 xla_ae_lines_pkg.BflowUpgEntry
34022 (p_business_method_code => l_bflow_method_code
34023 ,p_business_class_code => l_bflow_class_code
34024 ,p_balance_type => l_balance_type_code);
34025 ELSE
34026 NULL;
34027 XLA_AE_LINES_PKG.business_flow_validation(
34028 p_business_method_code => l_bflow_method_code
34029 ,p_business_class_code => l_bflow_class_code
34030 ,p_inherit_description_flag => l_inherit_desc_flag);
34031 END IF;
34032
34033 --
34034 -- call analytical criteria
34035 --
34036 -- Inherited Analytical Criteria for business flow method of Prior Entry.
34037 --
34038 -- call description
34039 --
34040 -- No description or it is inherited.
34041 --
34042 -- call ADRs
34043 -- Bug 4922099
34044 --
34045 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34046 (NVL(l_actual_upg_option, 'N') = 'O') OR
34047 (NVL(l_enc_upg_option, 'N') = 'O')
34048 )
34049 THEN
34050 NULL;
34051 --
34052 --
34053
34054 --
34055 --
34056 END IF;
34057 --
34058 -- Bug 4922099
34059 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34060 (NVL(l_enc_upg_option, 'N') = 'O')
34061 ) AND
34062 (l_bflow_method_code = 'PRIOR_ENTRY')
34063 )
34064 THEN
34065 IF
34066 --
34067 1 = 1
34068 --
34069 THEN
34070 xla_accounting_err_pkg.build_message
34071 (p_appli_s_name => 'XLA'
34072 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34073 ,p_token_1 => 'LINE_NUMBER'
34074 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34075 ,p_token_2 => 'LINE_TYPE_NAME'
34076 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34077 l_component_type
34078 ,l_component_code
34079 ,l_component_type_code
34080 ,l_component_appl_id
34081 ,l_amb_context_code
34082 ,l_entity_code
34083 ,l_event_class_code
34084 )
34085 ,p_token_3 => 'OWNER'
34086 ,p_value_3 => xla_lookups_pkg.get_meaning(
34087 p_lookup_type => 'XLA_OWNER_TYPE'
34088 ,p_lookup_code => l_component_type_code
34089 )
34090 ,p_token_4 => 'PRODUCT_NAME'
34091 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34092 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34093 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34094 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34095 ,p_ae_header_id => NULL
34096 );
34097
34098 IF (C_LEVEL_ERROR>= g_log_level) THEN
34099 trace
34100 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34101 ,p_level => C_LEVEL_ERROR
34102 ,p_module => l_log_module);
34103 END IF;
34104 END IF;
34105 END IF;
34106 --
34107 --
34108 ------------------------------------------------------------------------------------------------
34109 -- 4219869 Business Flow
34110 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34111 -- Prior Entry. Currently, the following code is always generated.
34112 ------------------------------------------------------------------------------------------------
34113 -- No ValidateCurrentLine for business flow method of Prior Entry
34114
34115 ------------------------------------------------------------------------------------
34116 -- 4219869 Business Flow
34117 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34118 ------------------------------------------------------------------------------------
34119 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34120
34121 ----------------------------------------------------------------------------------
34122 -- 4219869 Business Flow
34123 -- Update journal entry status -- Need to generate this within IF <condition>
34124 ----------------------------------------------------------------------------------
34125 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34126 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34127 ,p_balance_type_code => l_balance_type_code
34128 );
34129
34130 -------------------------------------------------------------------------------------------
34131 -- 4262811 - Generate the Accrual Reversal lines
34132 -------------------------------------------------------------------------------------------
34133 BEGIN
34134 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34135 (g_array_event(p_event_id).array_value_num('header_index'));
34136 IF l_acc_rev_flag IS NULL THEN
34137 l_acc_rev_flag := 'N';
34138 END IF;
34139 EXCEPTION
34140 WHEN OTHERS THEN
34141 l_acc_rev_flag := 'N';
34142 END;
34143 --
34144 IF (l_acc_rev_flag = 'Y') THEN
34145
34146 -- 4645092 ------------------------------------------------------------------------------
34147 -- To allow MPA report to determine if it should generate report process
34148 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34149 ------------------------------------------------------------------------------------------
34150
34151 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34152 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34153
34154 --
34155 -- Update the line information that should be overwritten
34156 --
34157 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34158 p_header_num => 1);
34159 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34160
34161 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34162
34163 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34164 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34165 END IF;
34166
34167 --
34168 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34169 --
34170 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34171 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34172 ELSE
34173 ---------------------------------------------------------------------------------------------------
34174 -- 4262811a Switch Sign
34175 ---------------------------------------------------------------------------------------------------
34176 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34177 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34178 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34179 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34180 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34181 -- 5132302
34182 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34183 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34184
34185 END IF;
34186
34187 -- 4955764
34188 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34189 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34190
34191
34192 XLA_AE_LINES_PKG.ValidateCurrentLine;
34193 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34194
34195 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34196 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34197 ,p_balance_type_code => l_balance_type_code);
34198
34199 END IF;
34200
34201 -----------------------------------------------------------------------------------------
34202 -- 4262811 Multiperiod Accounting
34203 -----------------------------------------------------------------------------------------
34204 -- No MPA option is assigned.
34205
34206
34207 END IF;
34208 END IF;
34209 --
34210
34211 --
34212 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34213 trace
34214 (p_msg => 'END of AcctLineType_64'
34215 ,p_level => C_LEVEL_PROCEDURE
34216 ,p_module => l_log_module);
34217 END IF;
34218 --
34219 EXCEPTION
34220 WHEN xla_exceptions_pkg.application_exception THEN
34221 RAISE;
34222 WHEN OTHERS THEN
34223 xla_exceptions_pkg.raise_message
34224 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_64');
34225 END AcctLineType_64;
34226 --
34227
34228 ---------------------------------------
34229 --
34230 -- PRIVATE FUNCTION
34231 -- AcctLineType_65
34232 --
34233 ---------------------------------------
34234 PROCEDURE AcctLineType_65 (
34235 p_application_id IN NUMBER
34236 ,p_event_id IN NUMBER
34237 ,p_calculate_acctd_flag IN VARCHAR2
34238 ,p_calculate_g_l_flag IN VARCHAR2
34239 ,p_actual_flag IN OUT VARCHAR2
34240 ,p_balance_type_code OUT VARCHAR2
34241 ,p_gain_or_loss_ref OUT VARCHAR2
34242
34243 --Budget Account
34244 , p_source_9 IN NUMBER
34245 --Main Or Backing Code
34246 , p_source_13 IN VARCHAR2
34247 --Accounting Reversal Flag
34248 , p_source_15 IN VARCHAR2
34249 --Distribution Link Type
34250 , p_source_17 IN VARCHAR2
34251 --PO Distribution Identifier
34252 , p_source_19 IN NUMBER
34253 --Applied To Application Identifier
34254 , p_source_21 IN NUMBER
34255 --Applied To Distribution Link Type
34256 , p_source_22 IN VARCHAR2
34257 --Applied To Entity Code
34258 , p_source_23 IN VARCHAR2
34259 --Applied To Distribution Identifier 1
34260 , p_source_24 IN NUMBER
34261 --Applied To Header Identifier 1
34262 , p_source_25 IN NUMBER
34263 --Entered Amount
34264 , p_source_26 IN NUMBER
34265 --Currency Code
34266 , p_source_27 IN VARCHAR2
34267 --Accounted Amount
34268 , p_source_28 IN NUMBER
34269 --PO Encumbrance Upgrade Option
34270 , p_source_29 IN VARCHAR2
34271 --JFMIP Reference
34272 , p_source_31 IN VARCHAR2
34273 --PO Upgrade Encumbrance Type Identifier
34274 , p_source_32 IN NUMBER
34275 --Allocated to Main Document Distribution Type
34276 , p_source_33 IN VARCHAR2
34277 --Allocated to Main Document Distribution Identifier
34278 , p_source_34 IN NUMBER
34279 --PO Release Identifier
34280 , p_source_41 IN NUMBER
34281 )
34282 IS
34283
34284 l_component_type VARCHAR2(80);
34285 l_component_code VARCHAR2(30);
34286 l_component_type_code VARCHAR2(1);
34287 l_component_appl_id INTEGER;
34288 l_amb_context_code VARCHAR2(30);
34289 l_entity_code VARCHAR2(30);
34290 l_event_class_code VARCHAR2(30);
34291 l_ae_header_id NUMBER;
34292 l_event_type_code VARCHAR2(30);
34293 l_line_definition_code VARCHAR2(30);
34294 l_line_definition_owner_code VARCHAR2(1);
34295 --
34296 -- adr variables
34297 l_segment VARCHAR2(30);
34298 l_ccid NUMBER;
34299 l_adr_transaction_coa_id NUMBER;
34300 l_adr_accounting_coa_id NUMBER;
34301 l_adr_flexfield_segment_code VARCHAR2(30);
34302 l_adr_flex_value_set_id NUMBER;
34303 l_adr_value_type_code VARCHAR2(30);
34304 l_adr_value_combination_id NUMBER;
34305 l_adr_value_segment_code VARCHAR2(30);
34306
34307 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34308 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34309 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34310 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34311
34312 -- 4262811 Variables ------------------------------------------------------------------------------------------
34313 l_entered_amt_idx NUMBER;
34314 l_accted_amt_idx NUMBER;
34315 l_acc_rev_flag VARCHAR2(1);
34316 l_accrual_line_num NUMBER;
34317 l_tmp_amt NUMBER;
34318 l_acc_rev_natural_side_code VARCHAR2(1);
34319
34320 l_num_entries NUMBER;
34321 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34322 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34323 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34324 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34325 l_recog_line_1 NUMBER;
34326 l_recog_line_2 NUMBER;
34327
34328 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34329 l_bflow_applied_to_amt NUMBER; -- 5132302
34330 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34331
34332 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34333
34334 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34335 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34336
34337 ---------------------------------------------------------------------------------------------------------------
34338
34339
34340 --
34341 -- bulk performance
34342 --
34343 l_balance_type_code VARCHAR2(1);
34344 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34345 l_log_module VARCHAR2(240);
34346
34347 --
34348 -- Upgrade strategy
34349 --
34350 l_actual_upg_option VARCHAR2(1);
34351 l_enc_upg_option VARCHAR2(1);
34352
34353 --
34354 BEGIN
34355 --
34356 IF g_log_enabled THEN
34357 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
34358 END IF;
34359 --
34360 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34361
34362 trace
34363 (p_msg => 'BEGIN of AcctLineType_65'
34364 ,p_level => C_LEVEL_PROCEDURE
34365 ,p_module => l_log_module);
34366
34367 END IF;
34368 --
34369 l_component_type := 'AMB_JLT';
34370 l_component_code := 'FV_REL_REINST_REQ_DR';
34371 l_component_type_code := 'S';
34372 l_component_appl_id := 201;
34373 l_amb_context_code := 'DEFAULT';
34374 l_entity_code := 'RELEASE';
34375 l_event_class_code := 'RELEASE';
34376 l_event_type_code := 'RELEASE_ALL';
34377 l_line_definition_owner_code := 'S';
34378 l_line_definition_code := 'FV_RELEASE_ALL';
34382 l_ccid := NULL;
34379 --
34380 l_balance_type_code := 'A';
34381 l_segment := NULL;
34383 l_adr_transaction_coa_id := NULL;
34384 l_adr_accounting_coa_id := NULL;
34385 l_adr_flexfield_segment_code := NULL;
34386 l_adr_flex_value_set_id := NULL;
34387 l_adr_value_type_code := NULL;
34388 l_adr_value_combination_id := NULL;
34389 l_adr_value_segment_code := NULL;
34390
34391 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
34392 l_bflow_class_code := 'FV_REQ_CR'; -- 4219869 Business Flow
34393 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
34394 l_budgetary_control_flag := 'Y';
34395
34396 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34397 l_bflow_applied_to_amt := NULL; -- 5132302
34398 l_entered_amt_idx := NULL; -- 4262811
34399 l_accted_amt_idx := NULL; -- 4262811
34400 l_acc_rev_flag := NULL; -- 4262811
34401 l_accrual_line_num := NULL; -- 4262811
34402 l_tmp_amt := NULL; -- 4262811
34403 --
34404
34405 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34406 l_balance_type_code <> 'B' THEN
34407 IF (NVL(
34408 xla_ae_sources_pkg.GetSystemSourceChar(
34409 p_source_code => 'XLA_EVENT_TYPE_CODE'
34410 , p_source_type_code => 'Y'
34411 , p_source_application_id => 602
34412 ),'
34413 ') = 'RELEASE_REJECTED' OR
34414 NVL(
34415 xla_ae_sources_pkg.GetSystemSourceChar(
34416 p_source_code => 'XLA_EVENT_TYPE_CODE'
34417 , p_source_type_code => 'Y'
34418 , p_source_application_id => 602
34419 ),'
34420 ') = 'RELEASE_INV_CANCELLED' OR
34421 NVL(
34422 xla_ae_sources_pkg.GetSystemSourceChar(
34423 p_source_code => 'XLA_EVENT_TYPE_CODE'
34424 , p_source_type_code => 'Y'
34425 , p_source_application_id => 602
34426 ),'
34427 ') = 'RELEASE_UNRESERVED') AND
34428 NVL(p_source_13,'
34429 ') = 'B_REQ'
34430 THEN
34431
34432 --
34433 XLA_AE_LINES_PKG.SetNewLine;
34434
34435 p_balance_type_code := l_balance_type_code;
34436 -- set the flag so later we will know whether the gain loss line needs to be created
34437
34438 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34439 p_actual_flag :='A';
34440 END IF;
34441
34442 --
34443 -- bulk performance
34444 --
34445 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34446 p_header_num => 0); -- 4262811
34447 --
34448 -- set accounting line options
34449 --
34450 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34451 p_natural_side_code => 'D'
34452 , p_gain_or_loss_flag => 'N'
34453 , p_gl_transfer_mode_code => 'S'
34454 , p_acct_entry_type_code => 'A'
34455 , p_switch_side_flag => 'N'
34456 , p_merge_duplicate_code => 'N'
34457 );
34458 --
34459 l_acc_rev_natural_side_code := 'C'; -- 4262811
34460 --
34461 --
34462 -- set accounting line type info
34463 --
34464 xla_ae_lines_pkg.SetAcctLineType
34465 (p_component_type => l_component_type
34466 ,p_event_type_code => l_event_type_code
34467 ,p_line_definition_owner_code => l_line_definition_owner_code
34468 ,p_line_definition_code => l_line_definition_code
34469 ,p_accounting_line_code => l_component_code
34470 ,p_accounting_line_type_code => l_component_type_code
34471 ,p_accounting_line_appl_id => l_component_appl_id
34472 ,p_amb_context_code => l_amb_context_code
34473 ,p_entity_code => l_entity_code
34474 ,p_event_class_code => l_event_class_code);
34475 --
34476 -- set accounting class
34477 --
34478 xla_ae_lines_pkg.SetAcctClass(
34479 p_accounting_class_code => 'PURCHASE_ORDER'
34480 , p_ae_header_id => l_ae_header_id
34481 );
34482
34483 --
34484 -- set rounding class
34485 --
34486 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34487 'PURCHASE_ORDER';
34488
34489 --
34490 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34491 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34492 --
34493 -- bulk performance
34494 --
34495 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34496
34497 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34498 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34499
34500 -- 4955764
34501 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34502 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34503
34504 -- 4458381 Public Sector Enh
34505
34506 --
34507 -- set accounting attributes for the line type
34508 --
34509 l_entered_amt_idx := 23;
34510 l_accted_amt_idx := 25;
34511 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34512 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34513 l_rec_acct_attrs.array_char_value(1) := p_source_15;
34514 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
34515 l_rec_acct_attrs.array_num_value(2) :=
34516 xla_ae_sources_pkg.GetSystemSourceNum(
34517 p_source_code => 'XLA_EVENT_APPL_ID'
34518 , p_source_type_code => 'Y'
34519 , p_source_application_id => 602
34520 );
34521 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
34522 l_rec_acct_attrs.array_char_value(3) := p_source_33;
34523 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
34524 l_rec_acct_attrs.array_char_value(4) :=
34525 xla_ae_sources_pkg.GetSystemSourceChar(
34526 p_source_code => 'XLA_ENTITY_CODE'
34527 , p_source_type_code => 'Y'
34528 , p_source_application_id => 602
34529 );
34530 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
34531 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
34532 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
34533 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
34534 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
34535 l_rec_acct_attrs.array_num_value(7) := p_source_21;
34536 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34537 l_rec_acct_attrs.array_char_value(8) := p_source_22;
34538 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
34539 l_rec_acct_attrs.array_char_value(9) := p_source_23;
34540 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
34541 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
34542 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34543 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
34544 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
34545 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
34546 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
34547 l_rec_acct_attrs.array_char_value(13) := p_source_17;
34548 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
34549 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
34550 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
34551 l_rec_acct_attrs.array_num_value(15) := p_source_26;
34552 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
34553 l_rec_acct_attrs.array_char_value(16) := p_source_27;
34554 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
34555 l_rec_acct_attrs.array_num_value(17) := p_source_28;
34556 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
34557 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
34558 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
34559 l_rec_acct_attrs.array_num_value(19) := p_source_26;
34560 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
34561 l_rec_acct_attrs.array_char_value(20) := p_source_27;
34562 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
34563 l_rec_acct_attrs.array_num_value(21) := p_source_28;
34564 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
34565 l_rec_acct_attrs.array_char_value(22) := p_source_29;
34566 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
34567 l_rec_acct_attrs.array_num_value(23) := p_source_26;
34568 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
34569 l_rec_acct_attrs.array_char_value(24) := p_source_27;
34570 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
34571 l_rec_acct_attrs.array_num_value(25) := p_source_28;
34572 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
34573 l_rec_acct_attrs.array_char_value(26) := p_source_31;
34574 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
34575 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
34576 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
34577 l_rec_acct_attrs.array_char_value(28) := p_source_22;
34578 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
34579 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
34580 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
34581 l_rec_acct_attrs.array_num_value(30) := p_source_32;
34582 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
34583 l_rec_acct_attrs.array_num_value(31) := p_source_32;
34584
34585 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34586 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34587
34588 ---------------------------------------------------------------------------------------------------------------
34589 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34590 ---------------------------------------------------------------------------------------------------------------
34591 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34592
34593 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34594 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34595
34596 IF xla_accounting_cache_pkg.GetValueChar
34597 (p_source_code => 'LEDGER_CATEGORY_CODE'
34598 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34599 AND l_bflow_method_code = 'PRIOR_ENTRY'
34600 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34601 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34602 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34603 )
34604 THEN
34605 xla_ae_lines_pkg.BflowUpgEntry
34606 (p_business_method_code => l_bflow_method_code
34607 ,p_business_class_code => l_bflow_class_code
34608 ,p_balance_type => l_balance_type_code);
34609 ELSE
34610 NULL;
34611 XLA_AE_LINES_PKG.business_flow_validation(
34612 p_business_method_code => l_bflow_method_code
34613 ,p_business_class_code => l_bflow_class_code
34614 ,p_inherit_description_flag => l_inherit_desc_flag);
34615 END IF;
34616
34617 --
34618 -- call analytical criteria
34619 --
34620 -- Inherited Analytical Criteria for business flow method of Prior Entry.
34621 --
34622 -- call description
34623 --
34624 -- No description or it is inherited.
34625 --
34626 -- call ADRs
34627 -- Bug 4922099
34628 --
34629 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34630 (NVL(l_actual_upg_option, 'N') = 'O') OR
34631 (NVL(l_enc_upg_option, 'N') = 'O')
34632 )
34633 THEN
34634 NULL;
34635 --
34636 --
34637
34638 --
34639 --
34640 END IF;
34641 --
34642 -- Bug 4922099
34643 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34644 (NVL(l_enc_upg_option, 'N') = 'O')
34645 ) AND
34646 (l_bflow_method_code = 'PRIOR_ENTRY')
34647 )
34648 THEN
34649 IF
34650 --
34651 1 = 1
34652 --
34653 THEN
34654 xla_accounting_err_pkg.build_message
34655 (p_appli_s_name => 'XLA'
34656 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34657 ,p_token_1 => 'LINE_NUMBER'
34658 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34659 ,p_token_2 => 'LINE_TYPE_NAME'
34660 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34661 l_component_type
34662 ,l_component_code
34663 ,l_component_type_code
34664 ,l_component_appl_id
34665 ,l_amb_context_code
34666 ,l_entity_code
34667 ,l_event_class_code
34668 )
34669 ,p_token_3 => 'OWNER'
34670 ,p_value_3 => xla_lookups_pkg.get_meaning(
34671 p_lookup_type => 'XLA_OWNER_TYPE'
34672 ,p_lookup_code => l_component_type_code
34673 )
34674 ,p_token_4 => 'PRODUCT_NAME'
34675 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34676 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34677 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34678 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34679 ,p_ae_header_id => NULL
34680 );
34681
34682 IF (C_LEVEL_ERROR>= g_log_level) THEN
34683 trace
34684 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34685 ,p_level => C_LEVEL_ERROR
34686 ,p_module => l_log_module);
34687 END IF;
34688 END IF;
34689 END IF;
34690 --
34691 --
34695 -- Prior Entry. Currently, the following code is always generated.
34692 ------------------------------------------------------------------------------------------------
34693 -- 4219869 Business Flow
34694 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34696 ------------------------------------------------------------------------------------------------
34697 -- No ValidateCurrentLine for business flow method of Prior Entry
34698
34699 ------------------------------------------------------------------------------------
34700 -- 4219869 Business Flow
34701 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34702 ------------------------------------------------------------------------------------
34703 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34704
34705 ----------------------------------------------------------------------------------
34706 -- 4219869 Business Flow
34707 -- Update journal entry status -- Need to generate this within IF <condition>
34708 ----------------------------------------------------------------------------------
34709 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34710 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34711 ,p_balance_type_code => l_balance_type_code
34712 );
34713
34714 -------------------------------------------------------------------------------------------
34715 -- 4262811 - Generate the Accrual Reversal lines
34716 -------------------------------------------------------------------------------------------
34717 BEGIN
34718 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34719 (g_array_event(p_event_id).array_value_num('header_index'));
34720 IF l_acc_rev_flag IS NULL THEN
34721 l_acc_rev_flag := 'N';
34722 END IF;
34723 EXCEPTION
34724 WHEN OTHERS THEN
34725 l_acc_rev_flag := 'N';
34726 END;
34727 --
34728 IF (l_acc_rev_flag = 'Y') THEN
34729
34730 -- 4645092 ------------------------------------------------------------------------------
34731 -- To allow MPA report to determine if it should generate report process
34732 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34733 ------------------------------------------------------------------------------------------
34734
34735 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34736 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34737
34738 --
34739 -- Update the line information that should be overwritten
34740 --
34741 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34742 p_header_num => 1);
34743 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34744
34745 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34746
34747 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34748 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34749 END IF;
34750
34751 --
34752 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34753 --
34754 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34755 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34756 ELSE
34757 ---------------------------------------------------------------------------------------------------
34758 -- 4262811a Switch Sign
34759 ---------------------------------------------------------------------------------------------------
34760 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34761 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34762 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34763 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34764 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34765 -- 5132302
34766 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34767 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34768
34769 END IF;
34770
34771 -- 4955764
34772 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34773 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34774
34775
34776 XLA_AE_LINES_PKG.ValidateCurrentLine;
34777 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34778
34779 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34780 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34781 ,p_balance_type_code => l_balance_type_code);
34782
34783 END IF;
34784
34785 -----------------------------------------------------------------------------------------
34786 -- 4262811 Multiperiod Accounting
34787 -----------------------------------------------------------------------------------------
34788 -- No MPA option is assigned.
34789
34790
34791 END IF;
34792 END IF;
34793 --
34794
34795 --
34796 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34797 trace
34798 (p_msg => 'END of AcctLineType_65'
34799 ,p_level => C_LEVEL_PROCEDURE
34800 ,p_module => l_log_module);
34801 END IF;
34802 --
34803 EXCEPTION
34804 WHEN xla_exceptions_pkg.application_exception THEN
34805 RAISE;
34806 WHEN OTHERS THEN
34807 xla_exceptions_pkg.raise_message
34808 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_65');
34809 END AcctLineType_65;
34810 --
34811
34812 ---------------------------------------
34813 --
34814 -- PRIVATE FUNCTION
34815 -- AcctLineType_66
34816 --
34817 ---------------------------------------
34818 PROCEDURE AcctLineType_66 (
34819 p_application_id IN NUMBER
34820 ,p_event_id IN NUMBER
34821 ,p_calculate_acctd_flag IN VARCHAR2
34822 ,p_calculate_g_l_flag IN VARCHAR2
34823 ,p_actual_flag IN OUT VARCHAR2
34824 ,p_balance_type_code OUT VARCHAR2
34825 ,p_gain_or_loss_ref OUT VARCHAR2
34826
34827 --Journal entry Line Description
34828 , p_source_3 IN VARCHAR2
34829 --Federal Fund Category
34830 , p_source_7 IN VARCHAR2
34831 --Federal Fund Expired Status
34832 , p_source_8 IN VARCHAR2
34833 --Budget Account
34834 , p_source_9 IN NUMBER
34835 --Main Or Backing Code
34836 , p_source_13 IN VARCHAR2
34837 --Accounting Reversal Flag
34838 , p_source_15 IN VARCHAR2
34839 --Distribution Link Type
34840 , p_source_17 IN VARCHAR2
34841 --PO Distribution Identifier
34842 , p_source_19 IN NUMBER
34843 --Applied To Application Identifier
34844 , p_source_21 IN NUMBER
34845 --Applied To Distribution Link Type
34846 , p_source_22 IN VARCHAR2
34847 --Applied To Entity Code
34848 , p_source_23 IN VARCHAR2
34849 --Applied To Distribution Identifier 1
34850 , p_source_24 IN NUMBER
34851 --Applied To Header Identifier 1
34852 , p_source_25 IN NUMBER
34853 --Entered Amount
34854 , p_source_26 IN NUMBER
34855 --Currency Code
34856 , p_source_27 IN VARCHAR2
34857 --Accounted Amount
34858 , p_source_28 IN NUMBER
34859 --PO Encumbrance Upgrade Option
34860 , p_source_29 IN VARCHAR2
34861 --JFMIP Reference
34862 , p_source_31 IN VARCHAR2
34863 --PO Upgrade Encumbrance Type Identifier
34864 , p_source_32 IN NUMBER
34865 --Allocated to Main Document Distribution Type
34866 , p_source_33 IN VARCHAR2
34867 --Allocated to Main Document Distribution Identifier
34868 , p_source_34 IN NUMBER
34869 --Currency Conversion Date
34870 , p_source_35 IN DATE
34871 --Currency Conversion Rate
34872 , p_source_36 IN NUMBER
34873 --Currency Conversion Type
34874 , p_source_37 IN VARCHAR2
34875 --PO Release Identifier
34876 , p_source_41 IN NUMBER
34877 )
34878 IS
34879
34880 l_component_type VARCHAR2(80);
34881 l_component_code VARCHAR2(30);
34882 l_component_type_code VARCHAR2(1);
34883 l_component_appl_id INTEGER;
34884 l_amb_context_code VARCHAR2(30);
34885 l_entity_code VARCHAR2(30);
34886 l_event_class_code VARCHAR2(30);
34887 l_ae_header_id NUMBER;
34888 l_event_type_code VARCHAR2(30);
34889 l_line_definition_code VARCHAR2(30);
34890 l_line_definition_owner_code VARCHAR2(1);
34891 --
34895 l_adr_transaction_coa_id NUMBER;
34892 -- adr variables
34893 l_segment VARCHAR2(30);
34894 l_ccid NUMBER;
34896 l_adr_accounting_coa_id NUMBER;
34897 l_adr_flexfield_segment_code VARCHAR2(30);
34898 l_adr_flex_value_set_id NUMBER;
34899 l_adr_value_type_code VARCHAR2(30);
34900 l_adr_value_combination_id NUMBER;
34901 l_adr_value_segment_code VARCHAR2(30);
34902
34903 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34904 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34905 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34906 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34907
34908 -- 4262811 Variables ------------------------------------------------------------------------------------------
34909 l_entered_amt_idx NUMBER;
34910 l_accted_amt_idx NUMBER;
34911 l_acc_rev_flag VARCHAR2(1);
34912 l_accrual_line_num NUMBER;
34913 l_tmp_amt NUMBER;
34914 l_acc_rev_natural_side_code VARCHAR2(1);
34915
34916 l_num_entries NUMBER;
34917 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34918 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34919 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34920 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34921 l_recog_line_1 NUMBER;
34922 l_recog_line_2 NUMBER;
34923
34924 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34925 l_bflow_applied_to_amt NUMBER; -- 5132302
34926 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34927
34928 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34929
34930 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34931 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34932
34933 ---------------------------------------------------------------------------------------------------------------
34934
34935
34936 --
34937 -- bulk performance
34938 --
34939 l_balance_type_code VARCHAR2(1);
34940 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34941 l_log_module VARCHAR2(240);
34942
34943 --
34944 -- Upgrade strategy
34945 --
34946 l_actual_upg_option VARCHAR2(1);
34947 l_enc_upg_option VARCHAR2(1);
34948
34949 --
34950 BEGIN
34951 --
34952 IF g_log_enabled THEN
34953 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
34954 END IF;
34955 --
34956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34957
34958 trace
34959 (p_msg => 'BEGIN of AcctLineType_66'
34960 ,p_level => C_LEVEL_PROCEDURE
34961 ,p_module => l_log_module);
34962
34963 END IF;
34964 --
34965 l_component_type := 'AMB_JLT';
34966 l_component_code := 'FV_REL_RELIEVE_PO_PA_CR';
34967 l_component_type_code := 'S';
34968 l_component_appl_id := 201;
34969 l_amb_context_code := 'DEFAULT';
34970 l_entity_code := 'RELEASE';
34971 l_event_class_code := 'RELEASE';
34972 l_event_type_code := 'RELEASE_ALL';
34973 l_line_definition_owner_code := 'S';
34974 l_line_definition_code := 'FV_RELEASE_ALL';
34975 --
34976 l_balance_type_code := 'A';
34977 l_segment := NULL;
34978 l_ccid := NULL;
34979 l_adr_transaction_coa_id := NULL;
34980 l_adr_accounting_coa_id := NULL;
34981 l_adr_flexfield_segment_code := NULL;
34982 l_adr_flex_value_set_id := NULL;
34983 l_adr_value_type_code := NULL;
34984 l_adr_value_combination_id := NULL;
34985 l_adr_value_segment_code := NULL;
34986
34987 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34988 l_bflow_class_code := ''; -- 4219869 Business Flow
34989 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34990 l_budgetary_control_flag := 'Y';
34991
34992 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34993 l_bflow_applied_to_amt := NULL; -- 5132302
34994 l_entered_amt_idx := NULL; -- 4262811
34995 l_accted_amt_idx := NULL; -- 4262811
34996 l_acc_rev_flag := NULL; -- 4262811
34997 l_accrual_line_num := NULL; -- 4262811
34998 l_tmp_amt := NULL; -- 4262811
34999 --
35000
35001 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35002 l_balance_type_code <> 'B' THEN
35003 IF NVL(
35004 xla_ae_sources_pkg.GetSystemSourceChar(
35005 p_source_code => 'XLA_EVENT_TYPE_CODE'
35006 , p_source_type_code => 'Y'
35007 , p_source_application_id => 602
35008 ),'
35009 ') = 'RELEASE_RESERVED' AND
35010 (NVL(p_source_13,'
35011 ') = 'B_PO' OR
35012 NVL(p_source_13,'
35013 ') = 'B_PA')
35014 THEN
35015
35016 --
35017 XLA_AE_LINES_PKG.SetNewLine;
35018
35019 p_balance_type_code := l_balance_type_code;
35020 -- set the flag so later we will know whether the gain loss line needs to be created
35021
35025
35022 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35023 p_actual_flag :='A';
35024 END IF;
35026 --
35027 -- bulk performance
35028 --
35029 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35030 p_header_num => 0); -- 4262811
35031 --
35032 -- set accounting line options
35033 --
35034 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35035 p_natural_side_code => 'C'
35036 , p_gain_or_loss_flag => 'N'
35037 , p_gl_transfer_mode_code => 'S'
35038 , p_acct_entry_type_code => 'A'
35039 , p_switch_side_flag => 'N'
35040 , p_merge_duplicate_code => 'N'
35041 );
35042 --
35043 l_acc_rev_natural_side_code := 'D'; -- 4262811
35044 --
35045 --
35046 -- set accounting line type info
35047 --
35048 xla_ae_lines_pkg.SetAcctLineType
35049 (p_component_type => l_component_type
35050 ,p_event_type_code => l_event_type_code
35051 ,p_line_definition_owner_code => l_line_definition_owner_code
35052 ,p_line_definition_code => l_line_definition_code
35053 ,p_accounting_line_code => l_component_code
35054 ,p_accounting_line_type_code => l_component_type_code
35055 ,p_accounting_line_appl_id => l_component_appl_id
35056 ,p_amb_context_code => l_amb_context_code
35057 ,p_entity_code => l_entity_code
35058 ,p_event_class_code => l_event_class_code);
35059 --
35060 -- set accounting class
35061 --
35062 xla_ae_lines_pkg.SetAcctClass(
35063 p_accounting_class_code => 'PURCHASE_ORDER'
35064 , p_ae_header_id => l_ae_header_id
35065 );
35066
35067 --
35068 -- set rounding class
35069 --
35070 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35071 'PURCHASE_ORDER';
35072
35073 --
35074 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35075 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35076 --
35077 -- bulk performance
35078 --
35079 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35080
35081 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35082 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35083
35084 -- 4955764
35085 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35086 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35087
35088 -- 4458381 Public Sector Enh
35089
35090 --
35091 -- set accounting attributes for the line type
35092 --
35093 l_entered_amt_idx := 23;
35094 l_accted_amt_idx := 28;
35095 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35096 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35097 l_rec_acct_attrs.array_char_value(1) := p_source_15;
35098 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
35099 l_rec_acct_attrs.array_num_value(2) :=
35100 xla_ae_sources_pkg.GetSystemSourceNum(
35101 p_source_code => 'XLA_EVENT_APPL_ID'
35102 , p_source_type_code => 'Y'
35103 , p_source_application_id => 602
35104 );
35105 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
35106 l_rec_acct_attrs.array_char_value(3) := p_source_33;
35107 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
35108 l_rec_acct_attrs.array_char_value(4) :=
35109 xla_ae_sources_pkg.GetSystemSourceChar(
35110 p_source_code => 'XLA_ENTITY_CODE'
35111 , p_source_type_code => 'Y'
35112 , p_source_application_id => 602
35113 );
35114 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
35115 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
35116 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
35117 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
35118 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
35119 l_rec_acct_attrs.array_num_value(7) := p_source_21;
35120 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35121 l_rec_acct_attrs.array_char_value(8) := p_source_22;
35122 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
35123 l_rec_acct_attrs.array_char_value(9) := p_source_23;
35124 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
35125 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
35126 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35127 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
35128 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
35129 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
35130 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
35131 l_rec_acct_attrs.array_char_value(13) := p_source_17;
35132 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
35133 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
35134 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
35135 l_rec_acct_attrs.array_num_value(15) := p_source_26;
35136 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
35137 l_rec_acct_attrs.array_char_value(16) := p_source_27;
35138 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
35139 l_rec_acct_attrs.array_num_value(17) := p_source_28;
35140 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
35141 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
35142 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
35143 l_rec_acct_attrs.array_num_value(19) := p_source_26;
35144 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
35145 l_rec_acct_attrs.array_char_value(20) := p_source_27;
35146 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
35147 l_rec_acct_attrs.array_num_value(21) := p_source_28;
35148 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
35149 l_rec_acct_attrs.array_char_value(22) := p_source_29;
35150 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
35151 l_rec_acct_attrs.array_num_value(23) := p_source_26;
35152 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
35153 l_rec_acct_attrs.array_char_value(24) := p_source_27;
35154 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
35155 l_rec_acct_attrs.array_date_value(25) := p_source_35;
35156 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
35157 l_rec_acct_attrs.array_num_value(26) := p_source_36;
35158 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
35159 l_rec_acct_attrs.array_char_value(27) := p_source_37;
35160 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
35161 l_rec_acct_attrs.array_num_value(28) := p_source_28;
35162 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
35163 l_rec_acct_attrs.array_char_value(29) := p_source_31;
35164 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
35165 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
35166 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
35167 l_rec_acct_attrs.array_char_value(31) := p_source_22;
35168 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
35169 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_41);
35170 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
35171 l_rec_acct_attrs.array_num_value(33) := p_source_32;
35172 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
35173 l_rec_acct_attrs.array_num_value(34) := p_source_32;
35174
35175 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35176 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35177
35178 ---------------------------------------------------------------------------------------------------------------
35179 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35180 ---------------------------------------------------------------------------------------------------------------
35181 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35182
35183 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35184 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35185
35186 IF xla_accounting_cache_pkg.GetValueChar
35187 (p_source_code => 'LEDGER_CATEGORY_CODE'
35188 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35189 AND l_bflow_method_code = 'PRIOR_ENTRY'
35190 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35191 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35192 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35193 )
35194 THEN
35195 xla_ae_lines_pkg.BflowUpgEntry
35196 (p_business_method_code => l_bflow_method_code
35197 ,p_business_class_code => l_bflow_class_code
35198 ,p_balance_type => l_balance_type_code);
35199 ELSE
35200 NULL;
35201 -- No business flow processing for business flow method of NONE.
35202 END IF;
35203
35204 --
35205 -- call analytical criteria
35206 --
35207
35208 --
35209 -- call description
35210 --
35211
35212 xla_ae_lines_pkg.SetLineDescription(
35213 p_ae_header_id => l_ae_header_id
35214 ,p_description => Description_2 (
35215 p_application_id => p_application_id
35216 , p_ae_header_id => l_ae_header_id
35217 , p_source_3 => p_source_3
35218 )
35219 );
35220
35221
35222 --
35223 -- call ADRs
35224 -- Bug 4922099
35225 --
35226 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35227 (NVL(l_actual_upg_option, 'N') = 'O') OR
35228 (NVL(l_enc_upg_option, 'N') = 'O')
35229 )
35230 THEN
35231 NULL;
35232 --
35233 --
35234
35235 l_ccid := AcctDerRule_9(
35236 p_application_id => p_application_id
35237 , p_ae_header_id => l_ae_header_id
35238 , p_source_9 => p_source_9
35239 , x_transaction_coa_id => l_adr_transaction_coa_id
35240 , x_accounting_coa_id => l_adr_accounting_coa_id
35241 , x_value_type_code => l_adr_value_type_code
35242 , p_side => 'NA'
35243 );
35244
35245 xla_ae_lines_pkg.set_ccid(
35246 p_code_combination_id => l_ccid
35247 , p_value_type_code => l_adr_value_type_code
35248 , p_transaction_coa_id => l_adr_transaction_coa_id
35249 , p_accounting_coa_id => l_adr_accounting_coa_id
35250 , p_adr_code => 'FV_ACCOUNT_RULE'
35251 , p_adr_type_code => 'S'
35252 , p_component_type => l_component_type
35253 , p_component_code => l_component_code
35254 , p_component_type_code => l_component_type_code
35255 , p_component_appl_id => l_component_appl_id
35256 , p_amb_context_code => l_amb_context_code
35257 , p_side => 'NA'
35258 );
35259
35260
35261 l_segment := AcctDerRule_5(
35262 p_application_id => p_application_id
35263 , p_ae_header_id => l_ae_header_id
35264 , p_source_7 => p_source_7
35265 , p_source_8 => p_source_8
35266 , x_transaction_coa_id => l_adr_transaction_coa_id
35267 , x_accounting_coa_id => l_adr_accounting_coa_id
35268 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35269 , x_flex_value_set_id => l_adr_flex_value_set_id
35270 , x_value_type_code => l_adr_value_type_code
35271 , x_value_combination_id => l_adr_value_combination_id
35272 , x_value_segment_code => l_adr_value_segment_code
35273 , p_side => 'NA'
35274 , p_override_seg_flag => 'Y'
35275 );
35276
35277 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35278
35279 xla_ae_lines_pkg.set_segment(
35280 p_to_segment_code => 'GL_ACCOUNT'
35281 , p_segment_value => l_segment
35282 , p_from_segment_code => l_adr_value_segment_code
35283 , p_from_combination_id => l_adr_value_combination_id
35284 , p_value_type_code => l_adr_value_type_code
35285 , p_transaction_coa_id => l_adr_transaction_coa_id
35286 , p_accounting_coa_id => l_adr_accounting_coa_id
35287 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35288 , p_flex_value_set_id => l_adr_flex_value_set_id
35289 , p_adr_code => 'FV_46X002'
35290 , p_adr_type_code => 'S'
35291 , p_component_type => l_component_type
35292 , p_component_code => l_component_code
35293 , p_component_type_code => l_component_type_code
35294 , p_component_appl_id => l_component_appl_id
35295 , p_amb_context_code => l_amb_context_code
35296 , p_entity_code => 'RELEASE'
35297 , p_event_class_code => 'RELEASE'
35298 , p_side => 'NA'
35299 );
35300
35301 END IF;
35302
35303 --
35304 --
35305 END IF;
35306 --
35307 -- Bug 4922099
35308 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35309 (NVL(l_enc_upg_option, 'N') = 'O')
35310 ) AND
35311 (l_bflow_method_code = 'PRIOR_ENTRY')
35312 )
35313 THEN
35314 IF
35315 --
35316 1 = 2
35317 --
35318 THEN
35319 xla_accounting_err_pkg.build_message
35320 (p_appli_s_name => 'XLA'
35321 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35322 ,p_token_1 => 'LINE_NUMBER'
35323 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35324 ,p_token_2 => 'LINE_TYPE_NAME'
35325 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35326 l_component_type
35327 ,l_component_code
35328 ,l_component_type_code
35329 ,l_component_appl_id
35330 ,l_amb_context_code
35331 ,l_entity_code
35332 ,l_event_class_code
35333 )
35334 ,p_token_3 => 'OWNER'
35335 ,p_value_3 => xla_lookups_pkg.get_meaning(
35336 p_lookup_type => 'XLA_OWNER_TYPE'
35337 ,p_lookup_code => l_component_type_code
35338 )
35339 ,p_token_4 => 'PRODUCT_NAME'
35340 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35341 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35342 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35343 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35344 ,p_ae_header_id => NULL
35345 );
35346
35347 IF (C_LEVEL_ERROR>= g_log_level) THEN
35348 trace
35349 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35350 ,p_level => C_LEVEL_ERROR
35351 ,p_module => l_log_module);
35352 END IF;
35353 END IF;
35354 END IF;
35355 --
35356 --
35357 ------------------------------------------------------------------------------------------------
35358 -- 4219869 Business Flow
35359 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35360 -- Prior Entry. Currently, the following code is always generated.
35361 ------------------------------------------------------------------------------------------------
35362 XLA_AE_LINES_PKG.ValidateCurrentLine;
35363
35364 ------------------------------------------------------------------------------------
35365 -- 4219869 Business Flow
35366 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35367 ------------------------------------------------------------------------------------
35368 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35369
35370 ----------------------------------------------------------------------------------
35371 -- 4219869 Business Flow
35372 -- Update journal entry status -- Need to generate this within IF <condition>
35373 ----------------------------------------------------------------------------------
35374 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35375 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35376 ,p_balance_type_code => l_balance_type_code
35377 );
35378
35379 -------------------------------------------------------------------------------------------
35380 -- 4262811 - Generate the Accrual Reversal lines
35381 -------------------------------------------------------------------------------------------
35382 BEGIN
35383 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35384 (g_array_event(p_event_id).array_value_num('header_index'));
35385 IF l_acc_rev_flag IS NULL THEN
35386 l_acc_rev_flag := 'N';
35387 END IF;
35388 EXCEPTION
35389 WHEN OTHERS THEN
35390 l_acc_rev_flag := 'N';
35391 END;
35392 --
35393 IF (l_acc_rev_flag = 'Y') THEN
35394
35395 -- 4645092 ------------------------------------------------------------------------------
35396 -- To allow MPA report to determine if it should generate report process
35397 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35398 ------------------------------------------------------------------------------------------
35399
35400 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35401 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35402
35403 --
35404 -- Update the line information that should be overwritten
35405 --
35406 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35407 p_header_num => 1);
35408 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35409
35410 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35411
35412 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35413 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35414 END IF;
35415
35416 --
35417 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35418 --
35419 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35420 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35421 ELSE
35422 ---------------------------------------------------------------------------------------------------
35423 -- 4262811a Switch Sign
35424 ---------------------------------------------------------------------------------------------------
35425 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35426 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35427 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35428 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35429 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35430 -- 5132302
35431 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35432 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35433
35434 END IF;
35435
35436 -- 4955764
35437 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35438 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35439
35440
35441 XLA_AE_LINES_PKG.ValidateCurrentLine;
35442 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35443
35444 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35445 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35446 ,p_balance_type_code => l_balance_type_code);
35447
35448 END IF;
35449
35450 -----------------------------------------------------------------------------------------
35451 -- 4262811 Multiperiod Accounting
35452 -----------------------------------------------------------------------------------------
35453 -- No MPA option is assigned.
35454
35455
35456 END IF;
35457 END IF;
35458 --
35459
35460 --
35461 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35462 trace
35463 (p_msg => 'END of AcctLineType_66'
35464 ,p_level => C_LEVEL_PROCEDURE
35465 ,p_module => l_log_module);
35466 END IF;
35467 --
35468 EXCEPTION
35469 WHEN xla_exceptions_pkg.application_exception THEN
35470 RAISE;
35471 WHEN OTHERS THEN
35472 xla_exceptions_pkg.raise_message
35473 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_66');
35474 END AcctLineType_66;
35475 --
35476
35477 ---------------------------------------
35478 --
35479 -- PRIVATE FUNCTION
35480 -- AcctLineType_67
35481 --
35482 ---------------------------------------
35483 PROCEDURE AcctLineType_67 (
35484 p_application_id IN NUMBER
35485 ,p_event_id IN NUMBER
35486 ,p_calculate_acctd_flag IN VARCHAR2
35487 ,p_calculate_g_l_flag IN VARCHAR2
35488 ,p_actual_flag IN OUT VARCHAR2
35489 ,p_balance_type_code OUT VARCHAR2
35490 ,p_gain_or_loss_ref OUT VARCHAR2
35491
35492 --Journal entry Line Description
35493 , p_source_3 IN VARCHAR2
35494 --Budget Account
35495 , p_source_9 IN NUMBER
35496 --Main Or Backing Code
35497 , p_source_13 IN VARCHAR2
35498 --Accounting Reversal Flag
35499 , p_source_15 IN VARCHAR2
35503 , p_source_19 IN NUMBER
35500 --Distribution Link Type
35501 , p_source_17 IN VARCHAR2
35502 --PO Distribution Identifier
35504 --Applied To Application Identifier
35505 , p_source_21 IN NUMBER
35506 --Applied To Distribution Link Type
35507 , p_source_22 IN VARCHAR2
35508 --Applied To Entity Code
35509 , p_source_23 IN VARCHAR2
35510 --Applied To Distribution Identifier 1
35511 , p_source_24 IN NUMBER
35512 --Applied To Header Identifier 1
35513 , p_source_25 IN NUMBER
35514 --Entered Amount
35515 , p_source_26 IN NUMBER
35516 --Currency Code
35517 , p_source_27 IN VARCHAR2
35518 --Accounted Amount
35519 , p_source_28 IN NUMBER
35520 --PO Encumbrance Upgrade Option
35521 , p_source_29 IN VARCHAR2
35522 --JFMIP Reference
35523 , p_source_31 IN VARCHAR2
35524 --PO Upgrade Encumbrance Type Identifier
35525 , p_source_32 IN NUMBER
35526 --Allocated to Main Document Distribution Type
35527 , p_source_33 IN VARCHAR2
35528 --Allocated to Main Document Distribution Identifier
35529 , p_source_34 IN NUMBER
35530 --Currency Conversion Date
35531 , p_source_35 IN DATE
35532 --Currency Conversion Rate
35533 , p_source_36 IN NUMBER
35534 --Currency Conversion Type
35535 , p_source_37 IN VARCHAR2
35536 --PO Release Identifier
35537 , p_source_41 IN NUMBER
35538 )
35539 IS
35540
35541 l_component_type VARCHAR2(80);
35542 l_component_code VARCHAR2(30);
35543 l_component_type_code VARCHAR2(1);
35544 l_component_appl_id INTEGER;
35545 l_amb_context_code VARCHAR2(30);
35546 l_entity_code VARCHAR2(30);
35547 l_event_class_code VARCHAR2(30);
35548 l_ae_header_id NUMBER;
35549 l_event_type_code VARCHAR2(30);
35550 l_line_definition_code VARCHAR2(30);
35551 l_line_definition_owner_code VARCHAR2(1);
35552 --
35553 -- adr variables
35554 l_segment VARCHAR2(30);
35555 l_ccid NUMBER;
35556 l_adr_transaction_coa_id NUMBER;
35557 l_adr_accounting_coa_id NUMBER;
35558 l_adr_flexfield_segment_code VARCHAR2(30);
35559 l_adr_flex_value_set_id NUMBER;
35560 l_adr_value_type_code VARCHAR2(30);
35561 l_adr_value_combination_id NUMBER;
35562 l_adr_value_segment_code VARCHAR2(30);
35563
35564 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35565 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35566 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35567 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35568
35569 -- 4262811 Variables ------------------------------------------------------------------------------------------
35570 l_entered_amt_idx NUMBER;
35571 l_accted_amt_idx NUMBER;
35572 l_acc_rev_flag VARCHAR2(1);
35573 l_accrual_line_num NUMBER;
35574 l_tmp_amt NUMBER;
35575 l_acc_rev_natural_side_code VARCHAR2(1);
35576
35577 l_num_entries NUMBER;
35578 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35579 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35580 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35581 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35582 l_recog_line_1 NUMBER;
35583 l_recog_line_2 NUMBER;
35584
35585 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35586 l_bflow_applied_to_amt NUMBER; -- 5132302
35587 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35588
35589 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35590
35591 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35592 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35593
35594 ---------------------------------------------------------------------------------------------------------------
35595
35596
35597 --
35598 -- bulk performance
35599 --
35600 l_balance_type_code VARCHAR2(1);
35601 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35602 l_log_module VARCHAR2(240);
35603
35604 --
35605 -- Upgrade strategy
35606 --
35607 l_actual_upg_option VARCHAR2(1);
35608 l_enc_upg_option VARCHAR2(1);
35609
35610 --
35611 BEGIN
35612 --
35613 IF g_log_enabled THEN
35614 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
35615 END IF;
35616 --
35617 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35618
35619 trace
35620 (p_msg => 'BEGIN of AcctLineType_67'
35621 ,p_level => C_LEVEL_PROCEDURE
35622 ,p_module => l_log_module);
35623
35624 END IF;
35625 --
35626 l_component_type := 'AMB_JLT';
35627 l_component_code := 'FV_REL_RELIEVE_PO_PA_DR';
35628 l_component_type_code := 'S';
35629 l_component_appl_id := 201;
35630 l_amb_context_code := 'DEFAULT';
35631 l_entity_code := 'RELEASE';
35632 l_event_class_code := 'RELEASE';
35633 l_event_type_code := 'RELEASE_ALL';
35634 l_line_definition_owner_code := 'S';
35635 l_line_definition_code := 'FV_RELEASE_ALL';
35636 --
35637 l_balance_type_code := 'A';
35638 l_segment := NULL;
35639 l_ccid := NULL;
35640 l_adr_transaction_coa_id := NULL;
35641 l_adr_accounting_coa_id := NULL;
35642 l_adr_flexfield_segment_code := NULL;
35643 l_adr_flex_value_set_id := NULL;
35644 l_adr_value_type_code := NULL;
35645 l_adr_value_combination_id := NULL;
35646 l_adr_value_segment_code := NULL;
35647
35648 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35649 l_bflow_class_code := ''; -- 4219869 Business Flow
35650 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35651 l_budgetary_control_flag := 'Y';
35652
35653 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35654 l_bflow_applied_to_amt := NULL; -- 5132302
35655 l_entered_amt_idx := NULL; -- 4262811
35656 l_accted_amt_idx := NULL; -- 4262811
35657 l_acc_rev_flag := NULL; -- 4262811
35658 l_accrual_line_num := NULL; -- 4262811
35659 l_tmp_amt := NULL; -- 4262811
35660 --
35661
35662 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35663 l_balance_type_code <> 'B' THEN
35664 IF NVL(
35665 xla_ae_sources_pkg.GetSystemSourceChar(
35666 p_source_code => 'XLA_EVENT_TYPE_CODE'
35667 , p_source_type_code => 'Y'
35668 , p_source_application_id => 602
35669 ),'
35670 ') = 'RELEASE_RESERVED' AND
35671 (NVL(p_source_13,'
35672 ') = 'B_PO' OR
35673 NVL(p_source_13,'
35674 ') = 'B_PA')
35675 THEN
35676
35677 --
35678 XLA_AE_LINES_PKG.SetNewLine;
35679
35680 p_balance_type_code := l_balance_type_code;
35681 -- set the flag so later we will know whether the gain loss line needs to be created
35682
35683 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35684 p_actual_flag :='A';
35685 END IF;
35686
35687 --
35688 -- bulk performance
35689 --
35690 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35691 p_header_num => 0); -- 4262811
35692 --
35693 -- set accounting line options
35694 --
35695 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35696 p_natural_side_code => 'D'
35697 , p_gain_or_loss_flag => 'N'
35698 , p_gl_transfer_mode_code => 'S'
35699 , p_acct_entry_type_code => 'A'
35700 , p_switch_side_flag => 'N'
35701 , p_merge_duplicate_code => 'N'
35702 );
35703 --
35704 l_acc_rev_natural_side_code := 'C'; -- 4262811
35705 --
35706 --
35707 -- set accounting line type info
35708 --
35709 xla_ae_lines_pkg.SetAcctLineType
35710 (p_component_type => l_component_type
35711 ,p_event_type_code => l_event_type_code
35712 ,p_line_definition_owner_code => l_line_definition_owner_code
35713 ,p_line_definition_code => l_line_definition_code
35714 ,p_accounting_line_code => l_component_code
35715 ,p_accounting_line_type_code => l_component_type_code
35716 ,p_accounting_line_appl_id => l_component_appl_id
35717 ,p_amb_context_code => l_amb_context_code
35718 ,p_entity_code => l_entity_code
35719 ,p_event_class_code => l_event_class_code);
35720 --
35721 -- set accounting class
35722 --
35723 xla_ae_lines_pkg.SetAcctClass(
35724 p_accounting_class_code => 'PURCHASE_ORDER'
35725 , p_ae_header_id => l_ae_header_id
35726 );
35727
35728 --
35729 -- set rounding class
35730 --
35731 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35732 'PURCHASE_ORDER';
35733
35734 --
35735 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35736 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35737 --
35738 -- bulk performance
35739 --
35740 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35741
35742 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35743 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35744
35745 -- 4955764
35746 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35747 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35748
35749 -- 4458381 Public Sector Enh
35750
35751 --
35752 -- set accounting attributes for the line type
35753 --
35754 l_entered_amt_idx := 23;
35755 l_accted_amt_idx := 28;
35756 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35757 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35758 l_rec_acct_attrs.array_char_value(1) := p_source_15;
35759 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
35760 l_rec_acct_attrs.array_num_value(2) :=
35761 xla_ae_sources_pkg.GetSystemSourceNum(
35762 p_source_code => 'XLA_EVENT_APPL_ID'
35763 , p_source_type_code => 'Y'
35764 , p_source_application_id => 602
35765 );
35766 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
35767 l_rec_acct_attrs.array_char_value(3) := p_source_33;
35768 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
35769 l_rec_acct_attrs.array_char_value(4) :=
35770 xla_ae_sources_pkg.GetSystemSourceChar(
35771 p_source_code => 'XLA_ENTITY_CODE'
35772 , p_source_type_code => 'Y'
35773 , p_source_application_id => 602
35774 );
35775 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
35776 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
35777 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
35778 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
35779 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
35780 l_rec_acct_attrs.array_num_value(7) := p_source_21;
35781 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35782 l_rec_acct_attrs.array_char_value(8) := p_source_22;
35783 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
35784 l_rec_acct_attrs.array_char_value(9) := p_source_23;
35785 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
35786 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
35787 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35788 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
35789 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
35790 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
35791 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
35792 l_rec_acct_attrs.array_char_value(13) := p_source_17;
35793 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
35794 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
35795 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
35796 l_rec_acct_attrs.array_num_value(15) := p_source_26;
35797 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
35798 l_rec_acct_attrs.array_char_value(16) := p_source_27;
35799 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
35800 l_rec_acct_attrs.array_num_value(17) := p_source_28;
35801 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
35802 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
35803 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
35804 l_rec_acct_attrs.array_num_value(19) := p_source_26;
35805 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
35806 l_rec_acct_attrs.array_char_value(20) := p_source_27;
35807 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
35808 l_rec_acct_attrs.array_num_value(21) := p_source_28;
35809 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
35810 l_rec_acct_attrs.array_char_value(22) := p_source_29;
35811 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
35812 l_rec_acct_attrs.array_num_value(23) := p_source_26;
35813 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
35814 l_rec_acct_attrs.array_char_value(24) := p_source_27;
35815 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
35816 l_rec_acct_attrs.array_date_value(25) := p_source_35;
35817 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
35818 l_rec_acct_attrs.array_num_value(26) := p_source_36;
35819 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
35820 l_rec_acct_attrs.array_char_value(27) := p_source_37;
35821 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
35822 l_rec_acct_attrs.array_num_value(28) := p_source_28;
35823 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
35824 l_rec_acct_attrs.array_char_value(29) := p_source_31;
35825 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
35826 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
35827 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
35828 l_rec_acct_attrs.array_char_value(31) := p_source_22;
35829 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
35830 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_41);
35831 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
35832 l_rec_acct_attrs.array_num_value(33) := p_source_32;
35833 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
35834 l_rec_acct_attrs.array_num_value(34) := p_source_32;
35835
35836 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35837 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35838
35839 ---------------------------------------------------------------------------------------------------------------
35840 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35841 ---------------------------------------------------------------------------------------------------------------
35845 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35842 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35843
35844 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35846
35847 IF xla_accounting_cache_pkg.GetValueChar
35848 (p_source_code => 'LEDGER_CATEGORY_CODE'
35849 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35850 AND l_bflow_method_code = 'PRIOR_ENTRY'
35851 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35852 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35853 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35854 )
35855 THEN
35856 xla_ae_lines_pkg.BflowUpgEntry
35857 (p_business_method_code => l_bflow_method_code
35858 ,p_business_class_code => l_bflow_class_code
35859 ,p_balance_type => l_balance_type_code);
35860 ELSE
35861 NULL;
35862 -- No business flow processing for business flow method of NONE.
35863 END IF;
35864
35865 --
35866 -- call analytical criteria
35867 --
35868
35869 --
35870 -- call description
35871 --
35872
35873 xla_ae_lines_pkg.SetLineDescription(
35874 p_ae_header_id => l_ae_header_id
35875 ,p_description => Description_2 (
35876 p_application_id => p_application_id
35877 , p_ae_header_id => l_ae_header_id
35878 , p_source_3 => p_source_3
35879 )
35880 );
35881
35882
35883 --
35884 -- call ADRs
35885 -- Bug 4922099
35886 --
35887 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35888 (NVL(l_actual_upg_option, 'N') = 'O') OR
35889 (NVL(l_enc_upg_option, 'N') = 'O')
35890 )
35891 THEN
35892 NULL;
35893 --
35894 --
35895
35896 l_ccid := AcctDerRule_9(
35897 p_application_id => p_application_id
35898 , p_ae_header_id => l_ae_header_id
35899 , p_source_9 => p_source_9
35900 , x_transaction_coa_id => l_adr_transaction_coa_id
35901 , x_accounting_coa_id => l_adr_accounting_coa_id
35902 , x_value_type_code => l_adr_value_type_code
35903 , p_side => 'NA'
35904 );
35905
35906 xla_ae_lines_pkg.set_ccid(
35907 p_code_combination_id => l_ccid
35908 , p_value_type_code => l_adr_value_type_code
35909 , p_transaction_coa_id => l_adr_transaction_coa_id
35910 , p_accounting_coa_id => l_adr_accounting_coa_id
35911 , p_adr_code => 'FV_ACCOUNT_RULE'
35912 , p_adr_type_code => 'S'
35913 , p_component_type => l_component_type
35914 , p_component_code => l_component_code
35915 , p_component_type_code => l_component_type_code
35916 , p_component_appl_id => l_component_appl_id
35917 , p_amb_context_code => l_amb_context_code
35918 , p_side => 'NA'
35919 );
35920
35921
35922 l_segment := AcctDerRule_8(
35923 p_application_id => p_application_id
35924 , p_ae_header_id => l_ae_header_id
35925 , x_transaction_coa_id => l_adr_transaction_coa_id
35926 , x_accounting_coa_id => l_adr_accounting_coa_id
35927 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35928 , x_flex_value_set_id => l_adr_flex_value_set_id
35929 , x_value_type_code => l_adr_value_type_code
35930 , x_value_combination_id => l_adr_value_combination_id
35931 , x_value_segment_code => l_adr_value_segment_code
35932 , p_side => 'NA'
35933 , p_override_seg_flag => 'Y'
35934 );
35935
35936 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35937
35938 xla_ae_lines_pkg.set_segment(
35939 p_to_segment_code => 'GL_ACCOUNT'
35940 , p_segment_value => l_segment
35941 , p_from_segment_code => l_adr_value_segment_code
35942 , p_from_combination_id => l_adr_value_combination_id
35943 , p_value_type_code => l_adr_value_type_code
35944 , p_transaction_coa_id => l_adr_transaction_coa_id
35945 , p_accounting_coa_id => l_adr_accounting_coa_id
35946 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35947 , p_flex_value_set_id => l_adr_flex_value_set_id
35948 , p_adr_code => 'FV_48X101_PURCHASING'
35949 , p_adr_type_code => 'S'
35950 , p_component_type => l_component_type
35951 , p_component_code => l_component_code
35952 , p_component_type_code => l_component_type_code
35953 , p_component_appl_id => l_component_appl_id
35954 , p_amb_context_code => l_amb_context_code
35955 , p_entity_code => 'RELEASE'
35956 , p_event_class_code => 'RELEASE'
35957 , p_side => 'NA'
35958 );
35959
35960 END IF;
35961
35962 --
35963 --
35964 END IF;
35965 --
35966 -- Bug 4922099
35967 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35968 (NVL(l_enc_upg_option, 'N') = 'O')
35969 ) AND
35970 (l_bflow_method_code = 'PRIOR_ENTRY')
35971 )
35972 THEN
35973 IF
35974 --
35975 1 = 2
35976 --
35977 THEN
35978 xla_accounting_err_pkg.build_message
35979 (p_appli_s_name => 'XLA'
35980 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35981 ,p_token_1 => 'LINE_NUMBER'
35982 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35983 ,p_token_2 => 'LINE_TYPE_NAME'
35984 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35985 l_component_type
35986 ,l_component_code
35987 ,l_component_type_code
35988 ,l_component_appl_id
35989 ,l_amb_context_code
35990 ,l_entity_code
35991 ,l_event_class_code
35992 )
35993 ,p_token_3 => 'OWNER'
35994 ,p_value_3 => xla_lookups_pkg.get_meaning(
35995 p_lookup_type => 'XLA_OWNER_TYPE'
35996 ,p_lookup_code => l_component_type_code
35997 )
35998 ,p_token_4 => 'PRODUCT_NAME'
35999 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36000 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36001 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36002 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36003 ,p_ae_header_id => NULL
36004 );
36005
36006 IF (C_LEVEL_ERROR>= g_log_level) THEN
36007 trace
36008 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36009 ,p_level => C_LEVEL_ERROR
36010 ,p_module => l_log_module);
36011 END IF;
36012 END IF;
36013 END IF;
36014 --
36015 --
36016 ------------------------------------------------------------------------------------------------
36017 -- 4219869 Business Flow
36018 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36019 -- Prior Entry. Currently, the following code is always generated.
36020 ------------------------------------------------------------------------------------------------
36021 XLA_AE_LINES_PKG.ValidateCurrentLine;
36022
36023 ------------------------------------------------------------------------------------
36024 -- 4219869 Business Flow
36025 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36026 ------------------------------------------------------------------------------------
36027 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36028
36029 ----------------------------------------------------------------------------------
36030 -- 4219869 Business Flow
36031 -- Update journal entry status -- Need to generate this within IF <condition>
36032 ----------------------------------------------------------------------------------
36033 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36034 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36035 ,p_balance_type_code => l_balance_type_code
36036 );
36037
36038 -------------------------------------------------------------------------------------------
36039 -- 4262811 - Generate the Accrual Reversal lines
36040 -------------------------------------------------------------------------------------------
36041 BEGIN
36042 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36046 END IF;
36043 (g_array_event(p_event_id).array_value_num('header_index'));
36044 IF l_acc_rev_flag IS NULL THEN
36045 l_acc_rev_flag := 'N';
36047 EXCEPTION
36048 WHEN OTHERS THEN
36049 l_acc_rev_flag := 'N';
36050 END;
36051 --
36052 IF (l_acc_rev_flag = 'Y') THEN
36053
36054 -- 4645092 ------------------------------------------------------------------------------
36055 -- To allow MPA report to determine if it should generate report process
36056 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36057 ------------------------------------------------------------------------------------------
36058
36059 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36060 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36061
36062 --
36063 -- Update the line information that should be overwritten
36064 --
36065 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36066 p_header_num => 1);
36067 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36068
36069 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36070
36071 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36072 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36073 END IF;
36074
36075 --
36076 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36077 --
36078 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36079 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36080 ELSE
36081 ---------------------------------------------------------------------------------------------------
36082 -- 4262811a Switch Sign
36083 ---------------------------------------------------------------------------------------------------
36084 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36085 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36086 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36087 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36088 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36089 -- 5132302
36090 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36091 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36092
36093 END IF;
36094
36095 -- 4955764
36096 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36097 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36098
36099
36100 XLA_AE_LINES_PKG.ValidateCurrentLine;
36101 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36102
36103 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36104 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36105 ,p_balance_type_code => l_balance_type_code);
36106
36107 END IF;
36108
36109 -----------------------------------------------------------------------------------------
36110 -- 4262811 Multiperiod Accounting
36111 -----------------------------------------------------------------------------------------
36112 -- No MPA option is assigned.
36113
36114
36115 END IF;
36116 END IF;
36117 --
36118
36119 --
36120 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36121 trace
36122 (p_msg => 'END of AcctLineType_67'
36123 ,p_level => C_LEVEL_PROCEDURE
36124 ,p_module => l_log_module);
36125 END IF;
36126 --
36127 EXCEPTION
36128 WHEN xla_exceptions_pkg.application_exception THEN
36129 RAISE;
36130 WHEN OTHERS THEN
36131 xla_exceptions_pkg.raise_message
36132 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_67');
36133 END AcctLineType_67;
36134 --
36135
36136 ---------------------------------------
36137 --
36138 -- PRIVATE FUNCTION
36139 -- AcctLineType_68
36140 --
36141 ---------------------------------------
36142 PROCEDURE AcctLineType_68 (
36143 p_application_id IN NUMBER
36144 ,p_event_id IN NUMBER
36145 ,p_calculate_acctd_flag IN VARCHAR2
36146 ,p_calculate_g_l_flag IN VARCHAR2
36147 ,p_actual_flag IN OUT VARCHAR2
36148 ,p_balance_type_code OUT VARCHAR2
36149 ,p_gain_or_loss_ref OUT VARCHAR2
36150
36151 --Budget Account
36152 , p_source_9 IN NUMBER
36153 --Main Or Backing Code
36154 , p_source_13 IN VARCHAR2
36155 --Accounting Reversal Flag
36156 , p_source_15 IN VARCHAR2
36157 --Distribution Link Type
36158 , p_source_17 IN VARCHAR2
36159 --PO Distribution Identifier
36160 , p_source_19 IN NUMBER
36161 --Applied To Application Identifier
36162 , p_source_21 IN NUMBER
36163 --Applied To Distribution Link Type
36164 , p_source_22 IN VARCHAR2
36165 --Applied To Entity Code
36166 , p_source_23 IN VARCHAR2
36167 --Applied To Distribution Identifier 1
36168 , p_source_24 IN NUMBER
36169 --Applied To Header Identifier 1
36170 , p_source_25 IN NUMBER
36171 --Entered Amount
36172 , p_source_26 IN NUMBER
36173 --Currency Code
36174 , p_source_27 IN VARCHAR2
36175 --Accounted Amount
36176 , p_source_28 IN NUMBER
36177 --PO Encumbrance Upgrade Option
36178 , p_source_29 IN VARCHAR2
36179 --JFMIP Reference
36180 , p_source_31 IN VARCHAR2
36181 --PO Upgrade Encumbrance Type Identifier
36182 , p_source_32 IN NUMBER
36183 --Allocated to Main Document Distribution Type
36184 , p_source_33 IN VARCHAR2
36185 --Allocated to Main Document Distribution Identifier
36186 , p_source_34 IN NUMBER
36187 --PO Release Identifier
36188 , p_source_41 IN NUMBER
36189 )
36190 IS
36191
36192 l_component_type VARCHAR2(80);
36193 l_component_code VARCHAR2(30);
36194 l_component_type_code VARCHAR2(1);
36195 l_component_appl_id INTEGER;
36196 l_amb_context_code VARCHAR2(30);
36197 l_entity_code VARCHAR2(30);
36198 l_event_class_code VARCHAR2(30);
36199 l_ae_header_id NUMBER;
36200 l_event_type_code VARCHAR2(30);
36201 l_line_definition_code VARCHAR2(30);
36202 l_line_definition_owner_code VARCHAR2(1);
36203 --
36204 -- adr variables
36205 l_segment VARCHAR2(30);
36206 l_ccid NUMBER;
36207 l_adr_transaction_coa_id NUMBER;
36208 l_adr_accounting_coa_id NUMBER;
36209 l_adr_flexfield_segment_code VARCHAR2(30);
36210 l_adr_flex_value_set_id NUMBER;
36211 l_adr_value_type_code VARCHAR2(30);
36212 l_adr_value_combination_id NUMBER;
36213 l_adr_value_segment_code VARCHAR2(30);
36214
36215 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36216 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36217 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36218 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36219
36220 -- 4262811 Variables ------------------------------------------------------------------------------------------
36221 l_entered_amt_idx NUMBER;
36222 l_accted_amt_idx NUMBER;
36223 l_acc_rev_flag VARCHAR2(1);
36224 l_accrual_line_num NUMBER;
36225 l_tmp_amt NUMBER;
36226 l_acc_rev_natural_side_code VARCHAR2(1);
36227
36228 l_num_entries NUMBER;
36229 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36230 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36231 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36232 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36233 l_recog_line_1 NUMBER;
36234 l_recog_line_2 NUMBER;
36235
36236 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36237 l_bflow_applied_to_amt NUMBER; -- 5132302
36238 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36239
36240 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36241
36242 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36243 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36244
36245 ---------------------------------------------------------------------------------------------------------------
36246
36247
36248 --
36249 -- bulk performance
36250 --
36251 l_balance_type_code VARCHAR2(1);
36252 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36253 l_log_module VARCHAR2(240);
36254
36255 --
36256 -- Upgrade strategy
36257 --
36258 l_actual_upg_option VARCHAR2(1);
36259 l_enc_upg_option VARCHAR2(1);
36260
36261 --
36262 BEGIN
36263 --
36264 IF g_log_enabled THEN
36265 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
36266 END IF;
36267 --
36268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36269
36270 trace
36271 (p_msg => 'BEGIN of AcctLineType_68'
36272 ,p_level => C_LEVEL_PROCEDURE
36273 ,p_module => l_log_module);
36274
36275 END IF;
36276 --
36277 l_component_type := 'AMB_JLT';
36278 l_component_code := 'FV_REL_RELIEVE_REQ_CR';
36279 l_component_type_code := 'S';
36280 l_component_appl_id := 201;
36284 l_event_type_code := 'RELEASE_ALL';
36281 l_amb_context_code := 'DEFAULT';
36282 l_entity_code := 'RELEASE';
36283 l_event_class_code := 'RELEASE';
36285 l_line_definition_owner_code := 'S';
36286 l_line_definition_code := 'FV_RELEASE_ALL';
36287 --
36288 l_balance_type_code := 'A';
36289 l_segment := NULL;
36290 l_ccid := NULL;
36291 l_adr_transaction_coa_id := NULL;
36292 l_adr_accounting_coa_id := NULL;
36293 l_adr_flexfield_segment_code := NULL;
36294 l_adr_flex_value_set_id := NULL;
36295 l_adr_value_type_code := NULL;
36296 l_adr_value_combination_id := NULL;
36297 l_adr_value_segment_code := NULL;
36298
36299 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
36300 l_bflow_class_code := 'FV_REQ_DR'; -- 4219869 Business Flow
36301 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
36302 l_budgetary_control_flag := 'Y';
36303
36304 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36305 l_bflow_applied_to_amt := NULL; -- 5132302
36306 l_entered_amt_idx := NULL; -- 4262811
36307 l_accted_amt_idx := NULL; -- 4262811
36308 l_acc_rev_flag := NULL; -- 4262811
36309 l_accrual_line_num := NULL; -- 4262811
36310 l_tmp_amt := NULL; -- 4262811
36311 --
36312
36313 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36314 l_balance_type_code <> 'B' THEN
36315 IF NVL(
36316 xla_ae_sources_pkg.GetSystemSourceChar(
36317 p_source_code => 'XLA_EVENT_TYPE_CODE'
36318 , p_source_type_code => 'Y'
36319 , p_source_application_id => 602
36320 ),'
36321 ') = 'RELEASE_RESERVED' AND
36322 NVL(p_source_13,'
36323 ') = 'B_REQ'
36324 THEN
36325
36326 --
36327 XLA_AE_LINES_PKG.SetNewLine;
36328
36329 p_balance_type_code := l_balance_type_code;
36330 -- set the flag so later we will know whether the gain loss line needs to be created
36331
36332 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36333 p_actual_flag :='A';
36334 END IF;
36335
36336 --
36337 -- bulk performance
36338 --
36339 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36340 p_header_num => 0); -- 4262811
36341 --
36342 -- set accounting line options
36343 --
36344 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36345 p_natural_side_code => 'C'
36346 , p_gain_or_loss_flag => 'N'
36347 , p_gl_transfer_mode_code => 'S'
36348 , p_acct_entry_type_code => 'A'
36349 , p_switch_side_flag => 'N'
36350 , p_merge_duplicate_code => 'N'
36351 );
36352 --
36353 l_acc_rev_natural_side_code := 'D'; -- 4262811
36354 --
36355 --
36356 -- set accounting line type info
36357 --
36358 xla_ae_lines_pkg.SetAcctLineType
36359 (p_component_type => l_component_type
36360 ,p_event_type_code => l_event_type_code
36361 ,p_line_definition_owner_code => l_line_definition_owner_code
36362 ,p_line_definition_code => l_line_definition_code
36363 ,p_accounting_line_code => l_component_code
36364 ,p_accounting_line_type_code => l_component_type_code
36365 ,p_accounting_line_appl_id => l_component_appl_id
36366 ,p_amb_context_code => l_amb_context_code
36367 ,p_entity_code => l_entity_code
36368 ,p_event_class_code => l_event_class_code);
36369 --
36370 -- set accounting class
36371 --
36372 xla_ae_lines_pkg.SetAcctClass(
36373 p_accounting_class_code => 'PURCHASE_ORDER'
36374 , p_ae_header_id => l_ae_header_id
36375 );
36376
36377 --
36378 -- set rounding class
36379 --
36380 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36381 'PURCHASE_ORDER';
36382
36383 --
36384 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36385 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36386 --
36387 -- bulk performance
36388 --
36389 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36390
36391 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36392 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36393
36394 -- 4955764
36395 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36396 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36397
36398 -- 4458381 Public Sector Enh
36399
36400 --
36401 -- set accounting attributes for the line type
36402 --
36403 l_entered_amt_idx := 23;
36404 l_accted_amt_idx := 25;
36405 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36406 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36407 l_rec_acct_attrs.array_char_value(1) := p_source_15;
36408 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
36409 l_rec_acct_attrs.array_num_value(2) :=
36410 xla_ae_sources_pkg.GetSystemSourceNum(
36411 p_source_code => 'XLA_EVENT_APPL_ID'
36412 , p_source_type_code => 'Y'
36413 , p_source_application_id => 602
36414 );
36415 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
36416 l_rec_acct_attrs.array_char_value(3) := p_source_33;
36417 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
36418 l_rec_acct_attrs.array_char_value(4) :=
36419 xla_ae_sources_pkg.GetSystemSourceChar(
36420 p_source_code => 'XLA_ENTITY_CODE'
36421 , p_source_type_code => 'Y'
36422 , p_source_application_id => 602
36423 );
36424 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
36425 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
36426 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
36427 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
36428 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
36429 l_rec_acct_attrs.array_num_value(7) := p_source_21;
36430 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36431 l_rec_acct_attrs.array_char_value(8) := p_source_22;
36432 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
36433 l_rec_acct_attrs.array_char_value(9) := p_source_23;
36434 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
36435 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
36436 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36437 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
36438 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
36439 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
36440 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
36441 l_rec_acct_attrs.array_char_value(13) := p_source_17;
36442 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
36443 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
36444 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
36445 l_rec_acct_attrs.array_num_value(15) := p_source_26;
36446 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
36447 l_rec_acct_attrs.array_char_value(16) := p_source_27;
36448 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
36449 l_rec_acct_attrs.array_num_value(17) := p_source_28;
36450 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
36451 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
36452 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
36453 l_rec_acct_attrs.array_num_value(19) := p_source_26;
36454 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
36455 l_rec_acct_attrs.array_char_value(20) := p_source_27;
36456 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
36457 l_rec_acct_attrs.array_num_value(21) := p_source_28;
36458 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
36459 l_rec_acct_attrs.array_char_value(22) := p_source_29;
36460 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
36461 l_rec_acct_attrs.array_num_value(23) := p_source_26;
36462 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
36463 l_rec_acct_attrs.array_char_value(24) := p_source_27;
36464 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
36465 l_rec_acct_attrs.array_num_value(25) := p_source_28;
36466 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
36467 l_rec_acct_attrs.array_char_value(26) := p_source_31;
36468 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
36469 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
36470 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
36471 l_rec_acct_attrs.array_char_value(28) := p_source_22;
36475 l_rec_acct_attrs.array_num_value(30) := p_source_32;
36472 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
36473 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
36474 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
36476 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
36477 l_rec_acct_attrs.array_num_value(31) := p_source_32;
36478
36479 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36480 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36481
36482 ---------------------------------------------------------------------------------------------------------------
36483 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36484 ---------------------------------------------------------------------------------------------------------------
36485 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36486
36487 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36488 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36489
36490 IF xla_accounting_cache_pkg.GetValueChar
36491 (p_source_code => 'LEDGER_CATEGORY_CODE'
36492 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36493 AND l_bflow_method_code = 'PRIOR_ENTRY'
36494 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36495 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36496 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36497 )
36498 THEN
36499 xla_ae_lines_pkg.BflowUpgEntry
36500 (p_business_method_code => l_bflow_method_code
36501 ,p_business_class_code => l_bflow_class_code
36502 ,p_balance_type => l_balance_type_code);
36503 ELSE
36504 NULL;
36505 XLA_AE_LINES_PKG.business_flow_validation(
36506 p_business_method_code => l_bflow_method_code
36507 ,p_business_class_code => l_bflow_class_code
36508 ,p_inherit_description_flag => l_inherit_desc_flag);
36509 END IF;
36510
36511 --
36512 -- call analytical criteria
36513 --
36514 -- Inherited Analytical Criteria for business flow method of Prior Entry.
36515 --
36516 -- call description
36517 --
36518 -- No description or it is inherited.
36519 --
36520 -- call ADRs
36521 -- Bug 4922099
36522 --
36523 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36524 (NVL(l_actual_upg_option, 'N') = 'O') OR
36525 (NVL(l_enc_upg_option, 'N') = 'O')
36526 )
36527 THEN
36528 NULL;
36529 --
36530 --
36531
36532 --
36533 --
36534 END IF;
36535 --
36536 -- Bug 4922099
36537 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36538 (NVL(l_enc_upg_option, 'N') = 'O')
36539 ) AND
36540 (l_bflow_method_code = 'PRIOR_ENTRY')
36541 )
36542 THEN
36543 IF
36544 --
36545 1 = 1
36546 --
36547 THEN
36548 xla_accounting_err_pkg.build_message
36549 (p_appli_s_name => 'XLA'
36550 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36551 ,p_token_1 => 'LINE_NUMBER'
36552 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36553 ,p_token_2 => 'LINE_TYPE_NAME'
36554 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36555 l_component_type
36556 ,l_component_code
36557 ,l_component_type_code
36558 ,l_component_appl_id
36559 ,l_amb_context_code
36560 ,l_entity_code
36561 ,l_event_class_code
36562 )
36563 ,p_token_3 => 'OWNER'
36564 ,p_value_3 => xla_lookups_pkg.get_meaning(
36565 p_lookup_type => 'XLA_OWNER_TYPE'
36566 ,p_lookup_code => l_component_type_code
36567 )
36568 ,p_token_4 => 'PRODUCT_NAME'
36569 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36570 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36571 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36572 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36573 ,p_ae_header_id => NULL
36577 trace
36574 );
36575
36576 IF (C_LEVEL_ERROR>= g_log_level) THEN
36578 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36579 ,p_level => C_LEVEL_ERROR
36580 ,p_module => l_log_module);
36581 END IF;
36582 END IF;
36583 END IF;
36584 --
36585 --
36586 ------------------------------------------------------------------------------------------------
36587 -- 4219869 Business Flow
36588 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36589 -- Prior Entry. Currently, the following code is always generated.
36590 ------------------------------------------------------------------------------------------------
36591 -- No ValidateCurrentLine for business flow method of Prior Entry
36592
36593 ------------------------------------------------------------------------------------
36594 -- 4219869 Business Flow
36595 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36596 ------------------------------------------------------------------------------------
36597 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36598
36599 ----------------------------------------------------------------------------------
36600 -- 4219869 Business Flow
36601 -- Update journal entry status -- Need to generate this within IF <condition>
36602 ----------------------------------------------------------------------------------
36603 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36604 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36605 ,p_balance_type_code => l_balance_type_code
36606 );
36607
36608 -------------------------------------------------------------------------------------------
36609 -- 4262811 - Generate the Accrual Reversal lines
36610 -------------------------------------------------------------------------------------------
36611 BEGIN
36612 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36613 (g_array_event(p_event_id).array_value_num('header_index'));
36614 IF l_acc_rev_flag IS NULL THEN
36615 l_acc_rev_flag := 'N';
36616 END IF;
36617 EXCEPTION
36618 WHEN OTHERS THEN
36619 l_acc_rev_flag := 'N';
36620 END;
36621 --
36622 IF (l_acc_rev_flag = 'Y') THEN
36623
36624 -- 4645092 ------------------------------------------------------------------------------
36625 -- To allow MPA report to determine if it should generate report process
36626 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36627 ------------------------------------------------------------------------------------------
36628
36629 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36630 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36631
36632 --
36633 -- Update the line information that should be overwritten
36634 --
36635 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36636 p_header_num => 1);
36637 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36638
36639 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36640
36641 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36642 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36643 END IF;
36644
36645 --
36646 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36647 --
36648 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36649 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36650 ELSE
36651 ---------------------------------------------------------------------------------------------------
36652 -- 4262811a Switch Sign
36653 ---------------------------------------------------------------------------------------------------
36654 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36655 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36656 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36657 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36658 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36659 -- 5132302
36660 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36661 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36662
36663 END IF;
36664
36665 -- 4955764
36666 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36667 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36668
36669
36670 XLA_AE_LINES_PKG.ValidateCurrentLine;
36671 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36672
36673 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36674 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36675 ,p_balance_type_code => l_balance_type_code);
36676
36677 END IF;
36678
36679 -----------------------------------------------------------------------------------------
36680 -- 4262811 Multiperiod Accounting
36681 -----------------------------------------------------------------------------------------
36682 -- No MPA option is assigned.
36683
36684
36685 END IF;
36686 END IF;
36687 --
36688
36689 --
36690 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36691 trace
36692 (p_msg => 'END of AcctLineType_68'
36693 ,p_level => C_LEVEL_PROCEDURE
36694 ,p_module => l_log_module);
36695 END IF;
36696 --
36697 EXCEPTION
36698 WHEN xla_exceptions_pkg.application_exception THEN
36699 RAISE;
36700 WHEN OTHERS THEN
36701 xla_exceptions_pkg.raise_message
36702 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_68');
36703 END AcctLineType_68;
36704 --
36705
36706 ---------------------------------------
36707 --
36708 -- PRIVATE FUNCTION
36709 -- AcctLineType_69
36710 --
36711 ---------------------------------------
36712 PROCEDURE AcctLineType_69 (
36713 p_application_id IN NUMBER
36714 ,p_event_id IN NUMBER
36715 ,p_calculate_acctd_flag IN VARCHAR2
36716 ,p_calculate_g_l_flag IN VARCHAR2
36717 ,p_actual_flag IN OUT VARCHAR2
36718 ,p_balance_type_code OUT VARCHAR2
36719 ,p_gain_or_loss_ref OUT VARCHAR2
36720
36721 --Budget Account
36722 , p_source_9 IN NUMBER
36723 --Main Or Backing Code
36724 , p_source_13 IN VARCHAR2
36725 --Accounting Reversal Flag
36726 , p_source_15 IN VARCHAR2
36727 --Distribution Link Type
36728 , p_source_17 IN VARCHAR2
36729 --PO Distribution Identifier
36730 , p_source_19 IN NUMBER
36731 --Applied To Application Identifier
36732 , p_source_21 IN NUMBER
36733 --Applied To Distribution Link Type
36734 , p_source_22 IN VARCHAR2
36735 --Applied To Entity Code
36736 , p_source_23 IN VARCHAR2
36737 --Applied To Distribution Identifier 1
36738 , p_source_24 IN NUMBER
36739 --Applied To Header Identifier 1
36740 , p_source_25 IN NUMBER
36741 --Entered Amount
36742 , p_source_26 IN NUMBER
36743 --Currency Code
36744 , p_source_27 IN VARCHAR2
36745 --Accounted Amount
36746 , p_source_28 IN NUMBER
36747 --PO Encumbrance Upgrade Option
36748 , p_source_29 IN VARCHAR2
36749 --JFMIP Reference
36750 , p_source_31 IN VARCHAR2
36751 --PO Upgrade Encumbrance Type Identifier
36752 , p_source_32 IN NUMBER
36753 --Allocated to Main Document Distribution Type
36754 , p_source_33 IN VARCHAR2
36755 --Allocated to Main Document Distribution Identifier
36756 , p_source_34 IN NUMBER
36757 --PO Release Identifier
36758 , p_source_41 IN NUMBER
36759 )
36760 IS
36761
36762 l_component_type VARCHAR2(80);
36763 l_component_code VARCHAR2(30);
36764 l_component_type_code VARCHAR2(1);
36765 l_component_appl_id INTEGER;
36766 l_amb_context_code VARCHAR2(30);
36767 l_entity_code VARCHAR2(30);
36768 l_event_class_code VARCHAR2(30);
36769 l_ae_header_id NUMBER;
36770 l_event_type_code VARCHAR2(30);
36771 l_line_definition_code VARCHAR2(30);
36772 l_line_definition_owner_code VARCHAR2(1);
36773 --
36774 -- adr variables
36775 l_segment VARCHAR2(30);
36776 l_ccid NUMBER;
36777 l_adr_transaction_coa_id NUMBER;
36778 l_adr_accounting_coa_id NUMBER;
36779 l_adr_flexfield_segment_code VARCHAR2(30);
36780 l_adr_flex_value_set_id NUMBER;
36781 l_adr_value_type_code VARCHAR2(30);
36782 l_adr_value_combination_id NUMBER;
36783 l_adr_value_segment_code VARCHAR2(30);
36784
36785 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36786 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36787 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36788 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36789
36790 -- 4262811 Variables ------------------------------------------------------------------------------------------
36791 l_entered_amt_idx NUMBER;
36792 l_accted_amt_idx NUMBER;
36793 l_acc_rev_flag VARCHAR2(1);
36794 l_accrual_line_num NUMBER;
36795 l_tmp_amt NUMBER;
36796 l_acc_rev_natural_side_code VARCHAR2(1);
36797
36798 l_num_entries NUMBER;
36799 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36800 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36801 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36802 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36803 l_recog_line_1 NUMBER;
36804 l_recog_line_2 NUMBER;
36805
36806 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36807 l_bflow_applied_to_amt NUMBER; -- 5132302
36808 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36809
36810 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36811
36812 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36813 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36814
36815 ---------------------------------------------------------------------------------------------------------------
36816
36817
36818 --
36819 -- bulk performance
36820 --
36821 l_balance_type_code VARCHAR2(1);
36822 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36823 l_log_module VARCHAR2(240);
36824
36825 --
36826 -- Upgrade strategy
36827 --
36828 l_actual_upg_option VARCHAR2(1);
36829 l_enc_upg_option VARCHAR2(1);
36830
36831 --
36832 BEGIN
36833 --
36834 IF g_log_enabled THEN
36835 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
36836 END IF;
36837 --
36838 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36839
36840 trace
36841 (p_msg => 'BEGIN of AcctLineType_69'
36842 ,p_level => C_LEVEL_PROCEDURE
36843 ,p_module => l_log_module);
36844
36845 END IF;
36846 --
36847 l_component_type := 'AMB_JLT';
36848 l_component_code := 'FV_REL_RELIEVE_REQ_DR';
36849 l_component_type_code := 'S';
36850 l_component_appl_id := 201;
36851 l_amb_context_code := 'DEFAULT';
36852 l_entity_code := 'RELEASE';
36853 l_event_class_code := 'RELEASE';
36854 l_event_type_code := 'RELEASE_ALL';
36855 l_line_definition_owner_code := 'S';
36856 l_line_definition_code := 'FV_RELEASE_ALL';
36857 --
36858 l_balance_type_code := 'A';
36859 l_segment := NULL;
36860 l_ccid := NULL;
36861 l_adr_transaction_coa_id := NULL;
36862 l_adr_accounting_coa_id := NULL;
36863 l_adr_flexfield_segment_code := NULL;
36864 l_adr_flex_value_set_id := NULL;
36865 l_adr_value_type_code := NULL;
36866 l_adr_value_combination_id := NULL;
36867 l_adr_value_segment_code := NULL;
36868
36869 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
36870 l_bflow_class_code := 'FV_REQ_CR'; -- 4219869 Business Flow
36871 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
36872 l_budgetary_control_flag := 'Y';
36873
36874 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36875 l_bflow_applied_to_amt := NULL; -- 5132302
36876 l_entered_amt_idx := NULL; -- 4262811
36877 l_accted_amt_idx := NULL; -- 4262811
36878 l_acc_rev_flag := NULL; -- 4262811
36879 l_accrual_line_num := NULL; -- 4262811
36880 l_tmp_amt := NULL; -- 4262811
36881 --
36882
36883 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36884 l_balance_type_code <> 'B' THEN
36885 IF NVL(
36886 xla_ae_sources_pkg.GetSystemSourceChar(
36887 p_source_code => 'XLA_EVENT_TYPE_CODE'
36888 , p_source_type_code => 'Y'
36889 , p_source_application_id => 602
36890 ),'
36891 ') = 'RELEASE_RESERVED' AND
36892 NVL(p_source_13,'
36893 ') = 'B_REQ'
36894 THEN
36895
36896 --
36897 XLA_AE_LINES_PKG.SetNewLine;
36898
36899 p_balance_type_code := l_balance_type_code;
36900 -- set the flag so later we will know whether the gain loss line needs to be created
36901
36902 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36903 p_actual_flag :='A';
36904 END IF;
36905
36906 --
36910 p_header_num => 0); -- 4262811
36907 -- bulk performance
36908 --
36909 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36911 --
36912 -- set accounting line options
36913 --
36914 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36915 p_natural_side_code => 'D'
36916 , p_gain_or_loss_flag => 'N'
36917 , p_gl_transfer_mode_code => 'S'
36918 , p_acct_entry_type_code => 'A'
36919 , p_switch_side_flag => 'N'
36920 , p_merge_duplicate_code => 'N'
36921 );
36922 --
36923 l_acc_rev_natural_side_code := 'C'; -- 4262811
36924 --
36925 --
36926 -- set accounting line type info
36927 --
36928 xla_ae_lines_pkg.SetAcctLineType
36929 (p_component_type => l_component_type
36930 ,p_event_type_code => l_event_type_code
36931 ,p_line_definition_owner_code => l_line_definition_owner_code
36932 ,p_line_definition_code => l_line_definition_code
36933 ,p_accounting_line_code => l_component_code
36934 ,p_accounting_line_type_code => l_component_type_code
36935 ,p_accounting_line_appl_id => l_component_appl_id
36936 ,p_amb_context_code => l_amb_context_code
36937 ,p_entity_code => l_entity_code
36938 ,p_event_class_code => l_event_class_code);
36939 --
36940 -- set accounting class
36941 --
36942 xla_ae_lines_pkg.SetAcctClass(
36943 p_accounting_class_code => 'PURCHASE_ORDER'
36944 , p_ae_header_id => l_ae_header_id
36945 );
36946
36947 --
36948 -- set rounding class
36949 --
36950 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36951 'PURCHASE_ORDER';
36952
36953 --
36954 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36955 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36956 --
36957 -- bulk performance
36958 --
36959 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36960
36961 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36962 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36963
36964 -- 4955764
36965 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36966 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36967
36968 -- 4458381 Public Sector Enh
36969
36970 --
36971 -- set accounting attributes for the line type
36972 --
36973 l_entered_amt_idx := 23;
36974 l_accted_amt_idx := 25;
36975 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36976 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36977 l_rec_acct_attrs.array_char_value(1) := p_source_15;
36978 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
36979 l_rec_acct_attrs.array_num_value(2) :=
36980 xla_ae_sources_pkg.GetSystemSourceNum(
36981 p_source_code => 'XLA_EVENT_APPL_ID'
36982 , p_source_type_code => 'Y'
36983 , p_source_application_id => 602
36984 );
36985 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
36986 l_rec_acct_attrs.array_char_value(3) := p_source_33;
36987 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
36988 l_rec_acct_attrs.array_char_value(4) :=
36989 xla_ae_sources_pkg.GetSystemSourceChar(
36990 p_source_code => 'XLA_ENTITY_CODE'
36991 , p_source_type_code => 'Y'
36992 , p_source_application_id => 602
36993 );
36994 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
36995 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
36996 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
36997 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
36998 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
36999 l_rec_acct_attrs.array_num_value(7) := p_source_21;
37000 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37001 l_rec_acct_attrs.array_char_value(8) := p_source_22;
37002 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
37003 l_rec_acct_attrs.array_char_value(9) := p_source_23;
37004 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
37005 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
37006 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37007 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
37008 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
37009 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
37010 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
37011 l_rec_acct_attrs.array_char_value(13) := p_source_17;
37012 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
37013 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
37014 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
37015 l_rec_acct_attrs.array_num_value(15) := p_source_26;
37016 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
37017 l_rec_acct_attrs.array_char_value(16) := p_source_27;
37018 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
37019 l_rec_acct_attrs.array_num_value(17) := p_source_28;
37020 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
37021 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
37022 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
37023 l_rec_acct_attrs.array_num_value(19) := p_source_26;
37024 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
37025 l_rec_acct_attrs.array_char_value(20) := p_source_27;
37026 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
37027 l_rec_acct_attrs.array_num_value(21) := p_source_28;
37028 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
37029 l_rec_acct_attrs.array_char_value(22) := p_source_29;
37030 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
37031 l_rec_acct_attrs.array_num_value(23) := p_source_26;
37032 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
37033 l_rec_acct_attrs.array_char_value(24) := p_source_27;
37034 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
37035 l_rec_acct_attrs.array_num_value(25) := p_source_28;
37036 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
37037 l_rec_acct_attrs.array_char_value(26) := p_source_31;
37038 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
37039 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
37040 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
37041 l_rec_acct_attrs.array_char_value(28) := p_source_22;
37042 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
37043 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
37044 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
37045 l_rec_acct_attrs.array_num_value(30) := p_source_32;
37046 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
37047 l_rec_acct_attrs.array_num_value(31) := p_source_32;
37048
37049 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37050 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37051
37052 ---------------------------------------------------------------------------------------------------------------
37053 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37054 ---------------------------------------------------------------------------------------------------------------
37055 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37056
37057 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37058 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37059
37060 IF xla_accounting_cache_pkg.GetValueChar
37061 (p_source_code => 'LEDGER_CATEGORY_CODE'
37062 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37063 AND l_bflow_method_code = 'PRIOR_ENTRY'
37064 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37065 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37066 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37067 )
37068 THEN
37069 xla_ae_lines_pkg.BflowUpgEntry
37070 (p_business_method_code => l_bflow_method_code
37071 ,p_business_class_code => l_bflow_class_code
37072 ,p_balance_type => l_balance_type_code);
37073 ELSE
37074 NULL;
37075 XLA_AE_LINES_PKG.business_flow_validation(
37076 p_business_method_code => l_bflow_method_code
37077 ,p_business_class_code => l_bflow_class_code
37078 ,p_inherit_description_flag => l_inherit_desc_flag);
37079 END IF;
37080
37081 --
37082 -- call analytical criteria
37083 --
37084 -- Inherited Analytical Criteria for business flow method of Prior Entry.
37085 --
37086 -- call description
37087 --
37088 -- No description or it is inherited.
37089 --
37090 -- call ADRs
37091 -- Bug 4922099
37092 --
37093 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37094 (NVL(l_actual_upg_option, 'N') = 'O') OR
37095 (NVL(l_enc_upg_option, 'N') = 'O')
37096 )
37097 THEN
37098 NULL;
37099 --
37100 --
37101
37102 --
37103 --
37104 END IF;
37105 --
37106 -- Bug 4922099
37107 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37108 (NVL(l_enc_upg_option, 'N') = 'O')
37109 ) AND
37110 (l_bflow_method_code = 'PRIOR_ENTRY')
37111 )
37112 THEN
37113 IF
37114 --
37115 1 = 1
37116 --
37117 THEN
37118 xla_accounting_err_pkg.build_message
37119 (p_appli_s_name => 'XLA'
37120 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37121 ,p_token_1 => 'LINE_NUMBER'
37122 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37123 ,p_token_2 => 'LINE_TYPE_NAME'
37124 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37125 l_component_type
37126 ,l_component_code
37127 ,l_component_type_code
37128 ,l_component_appl_id
37129 ,l_amb_context_code
37130 ,l_entity_code
37131 ,l_event_class_code
37132 )
37136 ,p_lookup_code => l_component_type_code
37133 ,p_token_3 => 'OWNER'
37134 ,p_value_3 => xla_lookups_pkg.get_meaning(
37135 p_lookup_type => 'XLA_OWNER_TYPE'
37137 )
37138 ,p_token_4 => 'PRODUCT_NAME'
37139 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37140 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37141 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37142 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37143 ,p_ae_header_id => NULL
37144 );
37145
37146 IF (C_LEVEL_ERROR>= g_log_level) THEN
37147 trace
37148 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37149 ,p_level => C_LEVEL_ERROR
37150 ,p_module => l_log_module);
37151 END IF;
37152 END IF;
37153 END IF;
37154 --
37155 --
37156 ------------------------------------------------------------------------------------------------
37157 -- 4219869 Business Flow
37158 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37159 -- Prior Entry. Currently, the following code is always generated.
37160 ------------------------------------------------------------------------------------------------
37161 -- No ValidateCurrentLine for business flow method of Prior Entry
37162
37163 ------------------------------------------------------------------------------------
37164 -- 4219869 Business Flow
37165 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37166 ------------------------------------------------------------------------------------
37167 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37168
37169 ----------------------------------------------------------------------------------
37170 -- 4219869 Business Flow
37171 -- Update journal entry status -- Need to generate this within IF <condition>
37172 ----------------------------------------------------------------------------------
37173 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37174 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37175 ,p_balance_type_code => l_balance_type_code
37176 );
37177
37178 -------------------------------------------------------------------------------------------
37179 -- 4262811 - Generate the Accrual Reversal lines
37180 -------------------------------------------------------------------------------------------
37181 BEGIN
37182 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37183 (g_array_event(p_event_id).array_value_num('header_index'));
37184 IF l_acc_rev_flag IS NULL THEN
37185 l_acc_rev_flag := 'N';
37186 END IF;
37187 EXCEPTION
37188 WHEN OTHERS THEN
37189 l_acc_rev_flag := 'N';
37190 END;
37191 --
37192 IF (l_acc_rev_flag = 'Y') THEN
37193
37194 -- 4645092 ------------------------------------------------------------------------------
37195 -- To allow MPA report to determine if it should generate report process
37196 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37197 ------------------------------------------------------------------------------------------
37198
37199 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37200 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37201
37202 --
37203 -- Update the line information that should be overwritten
37204 --
37205 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37206 p_header_num => 1);
37207 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37208
37209 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37210
37211 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37212 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37213 END IF;
37214
37215 --
37216 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37217 --
37218 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37219 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37220 ELSE
37221 ---------------------------------------------------------------------------------------------------
37222 -- 4262811a Switch Sign
37223 ---------------------------------------------------------------------------------------------------
37224 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37225 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37226 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37227 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37228 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37229 -- 5132302
37230 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37231 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37232
37233 END IF;
37234
37235 -- 4955764
37236 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37237 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37238
37239
37240 XLA_AE_LINES_PKG.ValidateCurrentLine;
37241 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37242
37243 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37244 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37245 ,p_balance_type_code => l_balance_type_code);
37246
37247 END IF;
37248
37249 -----------------------------------------------------------------------------------------
37250 -- 4262811 Multiperiod Accounting
37251 -----------------------------------------------------------------------------------------
37252 -- No MPA option is assigned.
37253
37254
37255 END IF;
37256 END IF;
37257 --
37258
37259 --
37260 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37261 trace
37262 (p_msg => 'END of AcctLineType_69'
37263 ,p_level => C_LEVEL_PROCEDURE
37264 ,p_module => l_log_module);
37265 END IF;
37266 --
37267 EXCEPTION
37268 WHEN xla_exceptions_pkg.application_exception THEN
37269 RAISE;
37270 WHEN OTHERS THEN
37271 xla_exceptions_pkg.raise_message
37272 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_69');
37273 END AcctLineType_69;
37274 --
37275
37276 ---------------------------------------
37277 --
37278 -- PRIVATE FUNCTION
37279 -- AcctLineType_70
37280 --
37281 ---------------------------------------
37282 PROCEDURE AcctLineType_70 (
37283 p_application_id IN NUMBER
37284 ,p_event_id IN NUMBER
37285 ,p_calculate_acctd_flag IN VARCHAR2
37286 ,p_calculate_g_l_flag IN VARCHAR2
37287 ,p_actual_flag IN OUT VARCHAR2
37288 ,p_balance_type_code OUT VARCHAR2
37289 ,p_gain_or_loss_ref OUT VARCHAR2
37290
37291 --Budget Account
37292 , p_source_9 IN NUMBER
37293 --Main Or Backing Code
37294 , p_source_13 IN VARCHAR2
37295 --Accounting Reversal Flag
37296 , p_source_15 IN VARCHAR2
37297 --Distribution Link Type
37298 , p_source_17 IN VARCHAR2
37299 --PO Distribution Identifier
37300 , p_source_19 IN NUMBER
37301 --Applied To Application Identifier
37302 , p_source_21 IN NUMBER
37303 --Applied To Distribution Link Type
37304 , p_source_22 IN VARCHAR2
37305 --Applied To Entity Code
37306 , p_source_23 IN VARCHAR2
37307 --Applied To Distribution Identifier 1
37308 , p_source_24 IN NUMBER
37309 --Applied To Header Identifier 1
37310 , p_source_25 IN NUMBER
37311 --Entered Amount
37312 , p_source_26 IN NUMBER
37313 --Currency Code
37314 , p_source_27 IN VARCHAR2
37315 --Accounted Amount
37316 , p_source_28 IN NUMBER
37317 --PO Encumbrance Upgrade Option
37318 , p_source_29 IN VARCHAR2
37319 --JFMIP Reference
37320 , p_source_31 IN VARCHAR2
37321 --PO Upgrade Encumbrance Type Identifier
37322 , p_source_32 IN NUMBER
37323 --PO Release Identifier
37324 , p_source_41 IN NUMBER
37325 )
37326 IS
37327
37328 l_component_type VARCHAR2(80);
37329 l_component_code VARCHAR2(30);
37330 l_component_type_code VARCHAR2(1);
37331 l_component_appl_id INTEGER;
37332 l_amb_context_code VARCHAR2(30);
37333 l_entity_code VARCHAR2(30);
37334 l_event_class_code VARCHAR2(30);
37335 l_ae_header_id NUMBER;
37336 l_event_type_code VARCHAR2(30);
37337 l_line_definition_code VARCHAR2(30);
37338 l_line_definition_owner_code VARCHAR2(1);
37339 --
37340 -- adr variables
37341 l_segment VARCHAR2(30);
37342 l_ccid NUMBER;
37343 l_adr_transaction_coa_id NUMBER;
37344 l_adr_accounting_coa_id NUMBER;
37345 l_adr_flexfield_segment_code VARCHAR2(30);
37346 l_adr_flex_value_set_id NUMBER;
37347 l_adr_value_type_code VARCHAR2(30);
37348 l_adr_value_combination_id NUMBER;
37349 l_adr_value_segment_code VARCHAR2(30);
37350
37351 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37352 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37353 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37354 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37355
37356 -- 4262811 Variables ------------------------------------------------------------------------------------------
37357 l_entered_amt_idx NUMBER;
37358 l_accted_amt_idx NUMBER;
37359 l_acc_rev_flag VARCHAR2(1);
37360 l_accrual_line_num NUMBER;
37361 l_tmp_amt NUMBER;
37362 l_acc_rev_natural_side_code VARCHAR2(1);
37363
37364 l_num_entries NUMBER;
37365 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37366 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37367 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37368 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37369 l_recog_line_1 NUMBER;
37370 l_recog_line_2 NUMBER;
37371
37372 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37373 l_bflow_applied_to_amt NUMBER; -- 5132302
37374 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37375
37376 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37377
37378 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37379 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37380
37381 ---------------------------------------------------------------------------------------------------------------
37382
37383
37384 --
37385 -- bulk performance
37386 --
37387 l_balance_type_code VARCHAR2(1);
37388 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37389 l_log_module VARCHAR2(240);
37390
37391 --
37392 -- Upgrade strategy
37393 --
37394 l_actual_upg_option VARCHAR2(1);
37395 l_enc_upg_option VARCHAR2(1);
37396
37397 --
37398 BEGIN
37399 --
37400 IF g_log_enabled THEN
37401 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
37402 END IF;
37403 --
37404 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37405
37406 trace
37407 (p_msg => 'BEGIN of AcctLineType_70'
37408 ,p_level => C_LEVEL_PROCEDURE
37409 ,p_module => l_log_module);
37410
37411 END IF;
37412 --
37413 l_component_type := 'AMB_JLT';
37414 l_component_code := 'FV_REL_REOPEN_FINAL_CLOSED_CR';
37415 l_component_type_code := 'S';
37416 l_component_appl_id := 201;
37417 l_amb_context_code := 'DEFAULT';
37418 l_entity_code := 'RELEASE';
37419 l_event_class_code := 'RELEASE';
37420 l_event_type_code := 'RELEASE_ALL';
37421 l_line_definition_owner_code := 'S';
37422 l_line_definition_code := 'FV_RELEASE_ALL';
37423 --
37424 l_balance_type_code := 'A';
37425 l_segment := NULL;
37426 l_ccid := NULL;
37427 l_adr_transaction_coa_id := NULL;
37428 l_adr_accounting_coa_id := NULL;
37429 l_adr_flexfield_segment_code := NULL;
37430 l_adr_flex_value_set_id := NULL;
37431 l_adr_value_type_code := NULL;
37432 l_adr_value_combination_id := NULL;
37433 l_adr_value_segment_code := NULL;
37434
37435 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
37436 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
37437 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
37438 l_budgetary_control_flag := 'Y';
37439
37440 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37441 l_bflow_applied_to_amt := NULL; -- 5132302
37442 l_entered_amt_idx := NULL; -- 4262811
37443 l_accted_amt_idx := NULL; -- 4262811
37444 l_acc_rev_flag := NULL; -- 4262811
37445 l_accrual_line_num := NULL; -- 4262811
37446 l_tmp_amt := NULL; -- 4262811
37447 --
37448
37449 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37450 l_balance_type_code <> 'B' THEN
37451 IF NVL(
37452 xla_ae_sources_pkg.GetSystemSourceChar(
37453 p_source_code => 'XLA_EVENT_TYPE_CODE'
37454 , p_source_type_code => 'Y'
37455 , p_source_application_id => 602
37456 ),'
37457 ') = 'RELEASE_REOPEN_FINAL_CLOSED' AND
37458 NVL(p_source_13,'
37459 ') = 'M'
37460 THEN
37461
37462 --
37463 XLA_AE_LINES_PKG.SetNewLine;
37464
37465 p_balance_type_code := l_balance_type_code;
37466 -- set the flag so later we will know whether the gain loss line needs to be created
37467
37468 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37469 p_actual_flag :='A';
37470 END IF;
37471
37472 --
37473 -- bulk performance
37474 --
37475 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37476 p_header_num => 0); -- 4262811
37477 --
37478 -- set accounting line options
37479 --
37480 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37481 p_natural_side_code => 'C'
37482 , p_gain_or_loss_flag => 'N'
37483 , p_gl_transfer_mode_code => 'S'
37484 , p_acct_entry_type_code => 'A'
37485 , p_switch_side_flag => 'N'
37486 , p_merge_duplicate_code => 'N'
37487 );
37488 --
37489 l_acc_rev_natural_side_code := 'D'; -- 4262811
37490 --
37491 --
37492 -- set accounting line type info
37493 --
37494 xla_ae_lines_pkg.SetAcctLineType
37495 (p_component_type => l_component_type
37496 ,p_event_type_code => l_event_type_code
37497 ,p_line_definition_owner_code => l_line_definition_owner_code
37498 ,p_line_definition_code => l_line_definition_code
37499 ,p_accounting_line_code => l_component_code
37500 ,p_accounting_line_type_code => l_component_type_code
37501 ,p_accounting_line_appl_id => l_component_appl_id
37502 ,p_amb_context_code => l_amb_context_code
37503 ,p_entity_code => l_entity_code
37504 ,p_event_class_code => l_event_class_code);
37505 --
37506 -- set accounting class
37507 --
37508 xla_ae_lines_pkg.SetAcctClass(
37509 p_accounting_class_code => 'PURCHASE_ORDER'
37510 , p_ae_header_id => l_ae_header_id
37511 );
37512
37513 --
37514 -- set rounding class
37515 --
37516 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37517 'PURCHASE_ORDER';
37518
37519 --
37520 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37521 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37522 --
37523 -- bulk performance
37524 --
37525 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37526
37527 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37528 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37529
37530 -- 4955764
37531 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37532 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37533
37534 -- 4458381 Public Sector Enh
37535
37536 --
37537 -- set accounting attributes for the line type
37538 --
37539 l_entered_amt_idx := 23;
37540 l_accted_amt_idx := 25;
37541 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37542 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37543 l_rec_acct_attrs.array_char_value(1) := p_source_15;
37544 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
37545 l_rec_acct_attrs.array_num_value(2) :=
37546 xla_ae_sources_pkg.GetSystemSourceNum(
37547 p_source_code => 'XLA_EVENT_APPL_ID'
37548 , p_source_type_code => 'Y'
37549 , p_source_application_id => 602
37550 );
37551 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
37552 l_rec_acct_attrs.array_char_value(3) := p_source_17;
37553 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
37554 l_rec_acct_attrs.array_char_value(4) :=
37555 xla_ae_sources_pkg.GetSystemSourceChar(
37556 p_source_code => 'XLA_ENTITY_CODE'
37557 , p_source_type_code => 'Y'
37558 , p_source_application_id => 602
37559 );
37560 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
37561 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
37562 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
37563 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
37564 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
37565 l_rec_acct_attrs.array_num_value(7) := p_source_21;
37566 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37567 l_rec_acct_attrs.array_char_value(8) := p_source_22;
37568 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
37569 l_rec_acct_attrs.array_char_value(9) := p_source_23;
37570 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
37571 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
37572 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37573 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
37574 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
37575 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
37576 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
37577 l_rec_acct_attrs.array_char_value(13) := p_source_17;
37578 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
37579 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
37580 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
37581 l_rec_acct_attrs.array_num_value(15) := p_source_26;
37582 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
37583 l_rec_acct_attrs.array_char_value(16) := p_source_27;
37584 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
37585 l_rec_acct_attrs.array_num_value(17) := p_source_28;
37586 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
37587 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
37588 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
37589 l_rec_acct_attrs.array_num_value(19) := p_source_26;
37590 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
37591 l_rec_acct_attrs.array_char_value(20) := p_source_27;
37592 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
37593 l_rec_acct_attrs.array_num_value(21) := p_source_28;
37594 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
37595 l_rec_acct_attrs.array_char_value(22) := p_source_29;
37596 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
37597 l_rec_acct_attrs.array_num_value(23) := p_source_26;
37598 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
37599 l_rec_acct_attrs.array_char_value(24) := p_source_27;
37600 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
37601 l_rec_acct_attrs.array_num_value(25) := p_source_28;
37602 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
37603 l_rec_acct_attrs.array_char_value(26) := p_source_31;
37604 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
37605 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
37606 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
37607 l_rec_acct_attrs.array_char_value(28) := p_source_22;
37608 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
37609 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
37610 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
37611 l_rec_acct_attrs.array_num_value(30) := p_source_32;
37612 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
37613 l_rec_acct_attrs.array_num_value(31) := p_source_32;
37614
37615 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37616 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37617
37618 ---------------------------------------------------------------------------------------------------------------
37619 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37620 ---------------------------------------------------------------------------------------------------------------
37621 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37622
37623 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37624 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37625
37626 IF xla_accounting_cache_pkg.GetValueChar
37627 (p_source_code => 'LEDGER_CATEGORY_CODE'
37628 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37629 AND l_bflow_method_code = 'PRIOR_ENTRY'
37630 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37631 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37632 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37633 )
37634 THEN
37635 xla_ae_lines_pkg.BflowUpgEntry
37636 (p_business_method_code => l_bflow_method_code
37637 ,p_business_class_code => l_bflow_class_code
37638 ,p_balance_type => l_balance_type_code);
37639 ELSE
37640 NULL;
37641 XLA_AE_LINES_PKG.business_flow_validation(
37642 p_business_method_code => l_bflow_method_code
37643 ,p_business_class_code => l_bflow_class_code
37644 ,p_inherit_description_flag => l_inherit_desc_flag);
37645 END IF;
37646
37647 --
37648 -- call analytical criteria
37649 --
37650 -- Inherited Analytical Criteria for business flow method of Prior Entry.
37651 --
37652 -- call description
37653 --
37654 -- No description or it is inherited.
37655 --
37656 -- call ADRs
37657 -- Bug 4922099
37658 --
37659 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37660 (NVL(l_actual_upg_option, 'N') = 'O') OR
37661 (NVL(l_enc_upg_option, 'N') = 'O')
37662 )
37663 THEN
37664 NULL;
37665 --
37666 --
37667
37668 --
37669 --
37670 END IF;
37671 --
37672 -- Bug 4922099
37673 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37674 (NVL(l_enc_upg_option, 'N') = 'O')
37675 ) AND
37676 (l_bflow_method_code = 'PRIOR_ENTRY')
37677 )
37678 THEN
37679 IF
37680 --
37681 1 = 1
37682 --
37683 THEN
37684 xla_accounting_err_pkg.build_message
37685 (p_appli_s_name => 'XLA'
37686 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37687 ,p_token_1 => 'LINE_NUMBER'
37688 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37689 ,p_token_2 => 'LINE_TYPE_NAME'
37690 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37691 l_component_type
37692 ,l_component_code
37693 ,l_component_type_code
37694 ,l_component_appl_id
37695 ,l_amb_context_code
37696 ,l_entity_code
37697 ,l_event_class_code
37698 )
37699 ,p_token_3 => 'OWNER'
37700 ,p_value_3 => xla_lookups_pkg.get_meaning(
37701 p_lookup_type => 'XLA_OWNER_TYPE'
37702 ,p_lookup_code => l_component_type_code
37703 )
37704 ,p_token_4 => 'PRODUCT_NAME'
37705 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37706 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37707 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37708 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37709 ,p_ae_header_id => NULL
37710 );
37711
37712 IF (C_LEVEL_ERROR>= g_log_level) THEN
37713 trace
37714 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37715 ,p_level => C_LEVEL_ERROR
37716 ,p_module => l_log_module);
37717 END IF;
37718 END IF;
37719 END IF;
37720 --
37721 --
37722 ------------------------------------------------------------------------------------------------
37723 -- 4219869 Business Flow
37724 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37725 -- Prior Entry. Currently, the following code is always generated.
37726 ------------------------------------------------------------------------------------------------
37727 -- No ValidateCurrentLine for business flow method of Prior Entry
37728
37729 ------------------------------------------------------------------------------------
37730 -- 4219869 Business Flow
37731 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37732 ------------------------------------------------------------------------------------
37733 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37734
37738 ----------------------------------------------------------------------------------
37735 ----------------------------------------------------------------------------------
37736 -- 4219869 Business Flow
37737 -- Update journal entry status -- Need to generate this within IF <condition>
37739 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37740 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37741 ,p_balance_type_code => l_balance_type_code
37742 );
37743
37744 -------------------------------------------------------------------------------------------
37745 -- 4262811 - Generate the Accrual Reversal lines
37746 -------------------------------------------------------------------------------------------
37747 BEGIN
37748 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37749 (g_array_event(p_event_id).array_value_num('header_index'));
37750 IF l_acc_rev_flag IS NULL THEN
37751 l_acc_rev_flag := 'N';
37752 END IF;
37753 EXCEPTION
37754 WHEN OTHERS THEN
37755 l_acc_rev_flag := 'N';
37756 END;
37757 --
37758 IF (l_acc_rev_flag = 'Y') THEN
37759
37760 -- 4645092 ------------------------------------------------------------------------------
37761 -- To allow MPA report to determine if it should generate report process
37762 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37763 ------------------------------------------------------------------------------------------
37764
37765 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37766 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37767
37768 --
37769 -- Update the line information that should be overwritten
37770 --
37771 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37772 p_header_num => 1);
37773 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37774
37775 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37776
37777 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37778 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37779 END IF;
37780
37781 --
37782 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37783 --
37784 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37785 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37786 ELSE
37787 ---------------------------------------------------------------------------------------------------
37788 -- 4262811a Switch Sign
37789 ---------------------------------------------------------------------------------------------------
37790 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37791 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37792 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37793 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37794 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37795 -- 5132302
37796 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37797 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37798
37799 END IF;
37800
37801 -- 4955764
37802 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37803 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37804
37805
37806 XLA_AE_LINES_PKG.ValidateCurrentLine;
37807 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37808
37809 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37810 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37811 ,p_balance_type_code => l_balance_type_code);
37812
37813 END IF;
37814
37815 -----------------------------------------------------------------------------------------
37816 -- 4262811 Multiperiod Accounting
37817 -----------------------------------------------------------------------------------------
37818 -- No MPA option is assigned.
37819
37820
37821 END IF;
37822 END IF;
37823 --
37824
37825 --
37826 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37827 trace
37828 (p_msg => 'END of AcctLineType_70'
37829 ,p_level => C_LEVEL_PROCEDURE
37830 ,p_module => l_log_module);
37831 END IF;
37832 --
37833 EXCEPTION
37834 WHEN xla_exceptions_pkg.application_exception THEN
37835 RAISE;
37836 WHEN OTHERS THEN
37837 xla_exceptions_pkg.raise_message
37838 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_70');
37839 END AcctLineType_70;
37840 --
37841
37842 ---------------------------------------
37843 --
37844 -- PRIVATE FUNCTION
37845 -- AcctLineType_71
37846 --
37847 ---------------------------------------
37848 PROCEDURE AcctLineType_71 (
37849 p_application_id IN NUMBER
37850 ,p_event_id IN NUMBER
37851 ,p_calculate_acctd_flag IN VARCHAR2
37852 ,p_calculate_g_l_flag IN VARCHAR2
37853 ,p_actual_flag IN OUT VARCHAR2
37854 ,p_balance_type_code OUT VARCHAR2
37855 ,p_gain_or_loss_ref OUT VARCHAR2
37856
37857 --Budget Account
37858 , p_source_9 IN NUMBER
37859 --Main Or Backing Code
37860 , p_source_13 IN VARCHAR2
37861 --Accounting Reversal Flag
37862 , p_source_15 IN VARCHAR2
37863 --Distribution Link Type
37864 , p_source_17 IN VARCHAR2
37865 --PO Distribution Identifier
37866 , p_source_19 IN NUMBER
37867 --Applied To Application Identifier
37868 , p_source_21 IN NUMBER
37869 --Applied To Distribution Link Type
37870 , p_source_22 IN VARCHAR2
37871 --Applied To Entity Code
37872 , p_source_23 IN VARCHAR2
37873 --Applied To Distribution Identifier 1
37874 , p_source_24 IN NUMBER
37875 --Applied To Header Identifier 1
37876 , p_source_25 IN NUMBER
37877 --Entered Amount
37878 , p_source_26 IN NUMBER
37879 --Currency Code
37880 , p_source_27 IN VARCHAR2
37881 --Accounted Amount
37882 , p_source_28 IN NUMBER
37883 --PO Encumbrance Upgrade Option
37884 , p_source_29 IN VARCHAR2
37885 --JFMIP Reference
37886 , p_source_31 IN VARCHAR2
37887 --PO Upgrade Encumbrance Type Identifier
37888 , p_source_32 IN NUMBER
37889 --PO Release Identifier
37890 , p_source_41 IN NUMBER
37891 )
37892 IS
37893
37894 l_component_type VARCHAR2(80);
37895 l_component_code VARCHAR2(30);
37896 l_component_type_code VARCHAR2(1);
37897 l_component_appl_id INTEGER;
37898 l_amb_context_code VARCHAR2(30);
37899 l_entity_code VARCHAR2(30);
37900 l_event_class_code VARCHAR2(30);
37901 l_ae_header_id NUMBER;
37902 l_event_type_code VARCHAR2(30);
37903 l_line_definition_code VARCHAR2(30);
37904 l_line_definition_owner_code VARCHAR2(1);
37905 --
37906 -- adr variables
37907 l_segment VARCHAR2(30);
37908 l_ccid NUMBER;
37909 l_adr_transaction_coa_id NUMBER;
37910 l_adr_accounting_coa_id NUMBER;
37911 l_adr_flexfield_segment_code VARCHAR2(30);
37912 l_adr_flex_value_set_id NUMBER;
37913 l_adr_value_type_code VARCHAR2(30);
37914 l_adr_value_combination_id NUMBER;
37915 l_adr_value_segment_code VARCHAR2(30);
37916
37917 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37918 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37919 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37920 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37921
37922 -- 4262811 Variables ------------------------------------------------------------------------------------------
37923 l_entered_amt_idx NUMBER;
37924 l_accted_amt_idx NUMBER;
37925 l_acc_rev_flag VARCHAR2(1);
37926 l_accrual_line_num NUMBER;
37927 l_tmp_amt NUMBER;
37928 l_acc_rev_natural_side_code VARCHAR2(1);
37929
37930 l_num_entries NUMBER;
37931 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37932 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37933 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37934 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37935 l_recog_line_1 NUMBER;
37936 l_recog_line_2 NUMBER;
37937
37938 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37939 l_bflow_applied_to_amt NUMBER; -- 5132302
37940 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37941
37942 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37943
37944 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37945 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37946
37947 ---------------------------------------------------------------------------------------------------------------
37948
37949
37950 --
37951 -- bulk performance
37952 --
37953 l_balance_type_code VARCHAR2(1);
37954 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37955 l_log_module VARCHAR2(240);
37956
37957 --
37958 -- Upgrade strategy
37959 --
37960 l_actual_upg_option VARCHAR2(1);
37961 l_enc_upg_option VARCHAR2(1);
37962
37963 --
37964 BEGIN
37965 --
37966 IF g_log_enabled THEN
37967 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
37968 END IF;
37969 --
37970 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37971
37972 trace
37973 (p_msg => 'BEGIN of AcctLineType_71'
37974 ,p_level => C_LEVEL_PROCEDURE
37975 ,p_module => l_log_module);
37976
37977 END IF;
37978 --
37979 l_component_type := 'AMB_JLT';
37980 l_component_code := 'FV_REL_REOPEN_FINAL_CLOSED_DR';
37981 l_component_type_code := 'S';
37982 l_component_appl_id := 201;
37983 l_amb_context_code := 'DEFAULT';
37984 l_entity_code := 'RELEASE';
37985 l_event_class_code := 'RELEASE';
37986 l_event_type_code := 'RELEASE_ALL';
37987 l_line_definition_owner_code := 'S';
37988 l_line_definition_code := 'FV_RELEASE_ALL';
37989 --
37990 l_balance_type_code := 'A';
37991 l_segment := NULL;
37992 l_ccid := NULL;
37993 l_adr_transaction_coa_id := NULL;
37994 l_adr_accounting_coa_id := NULL;
37995 l_adr_flexfield_segment_code := NULL;
37996 l_adr_flex_value_set_id := NULL;
37997 l_adr_value_type_code := NULL;
37998 l_adr_value_combination_id := NULL;
37999 l_adr_value_segment_code := NULL;
38000
38001 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
38002 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
38003 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
38004 l_budgetary_control_flag := 'Y';
38005
38006 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38007 l_bflow_applied_to_amt := NULL; -- 5132302
38008 l_entered_amt_idx := NULL; -- 4262811
38009 l_accted_amt_idx := NULL; -- 4262811
38010 l_acc_rev_flag := NULL; -- 4262811
38011 l_accrual_line_num := NULL; -- 4262811
38012 l_tmp_amt := NULL; -- 4262811
38013 --
38014
38015 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38016 l_balance_type_code <> 'B' THEN
38017 IF NVL(
38018 xla_ae_sources_pkg.GetSystemSourceChar(
38019 p_source_code => 'XLA_EVENT_TYPE_CODE'
38020 , p_source_type_code => 'Y'
38021 , p_source_application_id => 602
38022 ),'
38023 ') = 'RELEASE_REOPEN_FINAL_CLOSED' AND
38024 NVL(p_source_13,'
38025 ') = 'M'
38026 THEN
38027
38028 --
38029 XLA_AE_LINES_PKG.SetNewLine;
38030
38031 p_balance_type_code := l_balance_type_code;
38032 -- set the flag so later we will know whether the gain loss line needs to be created
38033
38034 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38035 p_actual_flag :='A';
38036 END IF;
38037
38038 --
38039 -- bulk performance
38040 --
38041 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38042 p_header_num => 0); -- 4262811
38043 --
38044 -- set accounting line options
38045 --
38046 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38047 p_natural_side_code => 'D'
38048 , p_gain_or_loss_flag => 'N'
38049 , p_gl_transfer_mode_code => 'S'
38050 , p_acct_entry_type_code => 'A'
38051 , p_switch_side_flag => 'N'
38052 , p_merge_duplicate_code => 'N'
38053 );
38054 --
38055 l_acc_rev_natural_side_code := 'C'; -- 4262811
38056 --
38057 --
38058 -- set accounting line type info
38059 --
38060 xla_ae_lines_pkg.SetAcctLineType
38061 (p_component_type => l_component_type
38062 ,p_event_type_code => l_event_type_code
38063 ,p_line_definition_owner_code => l_line_definition_owner_code
38064 ,p_line_definition_code => l_line_definition_code
38065 ,p_accounting_line_code => l_component_code
38066 ,p_accounting_line_type_code => l_component_type_code
38067 ,p_accounting_line_appl_id => l_component_appl_id
38068 ,p_amb_context_code => l_amb_context_code
38069 ,p_entity_code => l_entity_code
38070 ,p_event_class_code => l_event_class_code);
38071 --
38072 -- set accounting class
38073 --
38074 xla_ae_lines_pkg.SetAcctClass(
38075 p_accounting_class_code => 'PURCHASE_ORDER'
38076 , p_ae_header_id => l_ae_header_id
38077 );
38078
38079 --
38080 -- set rounding class
38081 --
38082 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38083 'PURCHASE_ORDER';
38084
38085 --
38086 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38090 --
38087 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38088 --
38089 -- bulk performance
38091 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38092
38093 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38094 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38095
38096 -- 4955764
38097 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38098 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38099
38100 -- 4458381 Public Sector Enh
38101
38102 --
38103 -- set accounting attributes for the line type
38104 --
38105 l_entered_amt_idx := 23;
38106 l_accted_amt_idx := 25;
38107 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38108 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38109 l_rec_acct_attrs.array_char_value(1) := p_source_15;
38110 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
38111 l_rec_acct_attrs.array_num_value(2) :=
38112 xla_ae_sources_pkg.GetSystemSourceNum(
38113 p_source_code => 'XLA_EVENT_APPL_ID'
38114 , p_source_type_code => 'Y'
38115 , p_source_application_id => 602
38116 );
38117 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
38118 l_rec_acct_attrs.array_char_value(3) := p_source_17;
38119 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
38120 l_rec_acct_attrs.array_char_value(4) :=
38121 xla_ae_sources_pkg.GetSystemSourceChar(
38122 p_source_code => 'XLA_ENTITY_CODE'
38123 , p_source_type_code => 'Y'
38124 , p_source_application_id => 602
38125 );
38126 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
38127 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
38128 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
38129 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
38130 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
38131 l_rec_acct_attrs.array_num_value(7) := p_source_21;
38132 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38133 l_rec_acct_attrs.array_char_value(8) := p_source_22;
38134 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
38135 l_rec_acct_attrs.array_char_value(9) := p_source_23;
38136 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
38137 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
38138 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38139 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
38140 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
38141 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
38142 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
38143 l_rec_acct_attrs.array_char_value(13) := p_source_17;
38144 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
38145 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
38146 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
38147 l_rec_acct_attrs.array_num_value(15) := p_source_26;
38148 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
38149 l_rec_acct_attrs.array_char_value(16) := p_source_27;
38150 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
38151 l_rec_acct_attrs.array_num_value(17) := p_source_28;
38152 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
38153 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
38154 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
38155 l_rec_acct_attrs.array_num_value(19) := p_source_26;
38156 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
38157 l_rec_acct_attrs.array_char_value(20) := p_source_27;
38158 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
38159 l_rec_acct_attrs.array_num_value(21) := p_source_28;
38160 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
38161 l_rec_acct_attrs.array_char_value(22) := p_source_29;
38162 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
38163 l_rec_acct_attrs.array_num_value(23) := p_source_26;
38164 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
38165 l_rec_acct_attrs.array_char_value(24) := p_source_27;
38166 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
38167 l_rec_acct_attrs.array_num_value(25) := p_source_28;
38168 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
38169 l_rec_acct_attrs.array_char_value(26) := p_source_31;
38170 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
38171 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
38172 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
38173 l_rec_acct_attrs.array_char_value(28) := p_source_22;
38174 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
38175 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
38176 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
38177 l_rec_acct_attrs.array_num_value(30) := p_source_32;
38178 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
38179 l_rec_acct_attrs.array_num_value(31) := p_source_32;
38180
38181 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38182 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38183
38184 ---------------------------------------------------------------------------------------------------------------
38185 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38186 ---------------------------------------------------------------------------------------------------------------
38187 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38188
38189 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38190 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38191
38192 IF xla_accounting_cache_pkg.GetValueChar
38193 (p_source_code => 'LEDGER_CATEGORY_CODE'
38194 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38195 AND l_bflow_method_code = 'PRIOR_ENTRY'
38196 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38197 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38198 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38199 )
38200 THEN
38201 xla_ae_lines_pkg.BflowUpgEntry
38202 (p_business_method_code => l_bflow_method_code
38203 ,p_business_class_code => l_bflow_class_code
38204 ,p_balance_type => l_balance_type_code);
38205 ELSE
38206 NULL;
38207 XLA_AE_LINES_PKG.business_flow_validation(
38208 p_business_method_code => l_bflow_method_code
38209 ,p_business_class_code => l_bflow_class_code
38210 ,p_inherit_description_flag => l_inherit_desc_flag);
38211 END IF;
38212
38213 --
38214 -- call analytical criteria
38215 --
38216 -- Inherited Analytical Criteria for business flow method of Prior Entry.
38217 --
38218 -- call description
38219 --
38220 -- No description or it is inherited.
38221 --
38222 -- call ADRs
38223 -- Bug 4922099
38224 --
38225 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38226 (NVL(l_actual_upg_option, 'N') = 'O') OR
38227 (NVL(l_enc_upg_option, 'N') = 'O')
38228 )
38229 THEN
38230 NULL;
38231 --
38232 --
38233
38234 --
38235 --
38236 END IF;
38237 --
38238 -- Bug 4922099
38239 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38240 (NVL(l_enc_upg_option, 'N') = 'O')
38241 ) AND
38242 (l_bflow_method_code = 'PRIOR_ENTRY')
38243 )
38244 THEN
38245 IF
38246 --
38247 1 = 1
38248 --
38249 THEN
38250 xla_accounting_err_pkg.build_message
38251 (p_appli_s_name => 'XLA'
38252 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38253 ,p_token_1 => 'LINE_NUMBER'
38254 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38255 ,p_token_2 => 'LINE_TYPE_NAME'
38256 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38257 l_component_type
38258 ,l_component_code
38259 ,l_component_type_code
38260 ,l_component_appl_id
38261 ,l_amb_context_code
38262 ,l_entity_code
38263 ,l_event_class_code
38264 )
38265 ,p_token_3 => 'OWNER'
38266 ,p_value_3 => xla_lookups_pkg.get_meaning(
38267 p_lookup_type => 'XLA_OWNER_TYPE'
38268 ,p_lookup_code => l_component_type_code
38269 )
38270 ,p_token_4 => 'PRODUCT_NAME'
38271 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38272 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38273 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38274 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38275 ,p_ae_header_id => NULL
38276 );
38277
38278 IF (C_LEVEL_ERROR>= g_log_level) THEN
38279 trace
38280 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38281 ,p_level => C_LEVEL_ERROR
38282 ,p_module => l_log_module);
38283 END IF;
38284 END IF;
38285 END IF;
38286 --
38287 --
38288 ------------------------------------------------------------------------------------------------
38289 -- 4219869 Business Flow
38290 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38291 -- Prior Entry. Currently, the following code is always generated.
38292 ------------------------------------------------------------------------------------------------
38293 -- No ValidateCurrentLine for business flow method of Prior Entry
38294
38295 ------------------------------------------------------------------------------------
38296 -- 4219869 Business Flow
38297 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38298 ------------------------------------------------------------------------------------
38299 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38300
38301 ----------------------------------------------------------------------------------
38302 -- 4219869 Business Flow
38303 -- Update journal entry status -- Need to generate this within IF <condition>
38304 ----------------------------------------------------------------------------------
38305 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38306 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38307 ,p_balance_type_code => l_balance_type_code
38308 );
38309
38310 -------------------------------------------------------------------------------------------
38311 -- 4262811 - Generate the Accrual Reversal lines
38312 -------------------------------------------------------------------------------------------
38313 BEGIN
38314 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38315 (g_array_event(p_event_id).array_value_num('header_index'));
38316 IF l_acc_rev_flag IS NULL THEN
38317 l_acc_rev_flag := 'N';
38318 END IF;
38319 EXCEPTION
38320 WHEN OTHERS THEN
38321 l_acc_rev_flag := 'N';
38322 END;
38323 --
38324 IF (l_acc_rev_flag = 'Y') THEN
38325
38326 -- 4645092 ------------------------------------------------------------------------------
38327 -- To allow MPA report to determine if it should generate report process
38328 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38329 ------------------------------------------------------------------------------------------
38330
38331 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38332 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38333
38334 --
38335 -- Update the line information that should be overwritten
38336 --
38337 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38338 p_header_num => 1);
38339 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38340
38341 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38342
38343 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38344 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38345 END IF;
38346
38347 --
38348 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38349 --
38350 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38351 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38352 ELSE
38353 ---------------------------------------------------------------------------------------------------
38354 -- 4262811a Switch Sign
38355 ---------------------------------------------------------------------------------------------------
38356 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38357 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38358 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38359 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38360 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38361 -- 5132302
38362 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38363 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38364
38365 END IF;
38366
38367 -- 4955764
38368 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38369 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38370
38371
38372 XLA_AE_LINES_PKG.ValidateCurrentLine;
38373 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38374
38375 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38376 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38377 ,p_balance_type_code => l_balance_type_code);
38378
38379 END IF;
38380
38381 -----------------------------------------------------------------------------------------
38382 -- 4262811 Multiperiod Accounting
38383 -----------------------------------------------------------------------------------------
38384 -- No MPA option is assigned.
38385
38386
38387 END IF;
38388 END IF;
38389 --
38390
38391 --
38392 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38393 trace
38394 (p_msg => 'END of AcctLineType_71'
38395 ,p_level => C_LEVEL_PROCEDURE
38396 ,p_module => l_log_module);
38397 END IF;
38398 --
38399 EXCEPTION
38400 WHEN xla_exceptions_pkg.application_exception THEN
38401 RAISE;
38402 WHEN OTHERS THEN
38403 xla_exceptions_pkg.raise_message
38404 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_71');
38405 END AcctLineType_71;
38406 --
38407
38408 ---------------------------------------
38409 --
38410 -- PRIVATE FUNCTION
38411 -- AcctLineType_72
38412 --
38413 ---------------------------------------
38414 PROCEDURE AcctLineType_72 (
38415 p_application_id IN NUMBER
38416 ,p_event_id IN NUMBER
38417 ,p_calculate_acctd_flag IN VARCHAR2
38418 ,p_calculate_g_l_flag IN VARCHAR2
38419 ,p_actual_flag IN OUT VARCHAR2
38420 ,p_balance_type_code OUT VARCHAR2
38421 ,p_gain_or_loss_ref OUT VARCHAR2
38422
38423 --Journal entry Line Description
38424 , p_source_3 IN VARCHAR2
38425 --Budget Account
38426 , p_source_9 IN NUMBER
38427 --Main Or Backing Code
38428 , p_source_13 IN VARCHAR2
38429 --Accounting Reversal Flag
38430 , p_source_15 IN VARCHAR2
38431 --Distribution Link Type
38432 , p_source_17 IN VARCHAR2
38433 --PO Distribution Identifier
38434 , p_source_19 IN NUMBER
38435 --Applied To Application Identifier
38436 , p_source_21 IN NUMBER
38437 --Applied To Distribution Link Type
38438 , p_source_22 IN VARCHAR2
38439 --Applied To Entity Code
38440 , p_source_23 IN VARCHAR2
38441 --Applied To Distribution Identifier 1
38442 , p_source_24 IN NUMBER
38443 --Applied To Header Identifier 1
38444 , p_source_25 IN NUMBER
38445 --Entered Amount
38446 , p_source_26 IN NUMBER
38447 --Currency Code
38448 , p_source_27 IN VARCHAR2
38449 --Accounted Amount
38450 , p_source_28 IN NUMBER
38451 --PO Encumbrance Upgrade Option
38452 , p_source_29 IN VARCHAR2
38453 --JFMIP Reference
38454 , p_source_31 IN VARCHAR2
38455 --PO Upgrade Encumbrance Type Identifier
38456 , p_source_32 IN NUMBER
38457 --Currency Conversion Date
38458 , p_source_35 IN DATE
38459 --Currency Conversion Rate
38463 --PO Release Identifier
38460 , p_source_36 IN NUMBER
38461 --Currency Conversion Type
38462 , p_source_37 IN VARCHAR2
38464 , p_source_41 IN NUMBER
38465 )
38466 IS
38467
38468 l_component_type VARCHAR2(80);
38469 l_component_code VARCHAR2(30);
38470 l_component_type_code VARCHAR2(1);
38471 l_component_appl_id INTEGER;
38472 l_amb_context_code VARCHAR2(30);
38473 l_entity_code VARCHAR2(30);
38474 l_event_class_code VARCHAR2(30);
38475 l_ae_header_id NUMBER;
38476 l_event_type_code VARCHAR2(30);
38477 l_line_definition_code VARCHAR2(30);
38478 l_line_definition_owner_code VARCHAR2(1);
38479 --
38480 -- adr variables
38481 l_segment VARCHAR2(30);
38482 l_ccid NUMBER;
38483 l_adr_transaction_coa_id NUMBER;
38484 l_adr_accounting_coa_id NUMBER;
38485 l_adr_flexfield_segment_code VARCHAR2(30);
38486 l_adr_flex_value_set_id NUMBER;
38487 l_adr_value_type_code VARCHAR2(30);
38488 l_adr_value_combination_id NUMBER;
38489 l_adr_value_segment_code VARCHAR2(30);
38490
38491 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38492 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38493 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38494 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38495
38496 -- 4262811 Variables ------------------------------------------------------------------------------------------
38497 l_entered_amt_idx NUMBER;
38498 l_accted_amt_idx NUMBER;
38499 l_acc_rev_flag VARCHAR2(1);
38500 l_accrual_line_num NUMBER;
38501 l_tmp_amt NUMBER;
38502 l_acc_rev_natural_side_code VARCHAR2(1);
38503
38504 l_num_entries NUMBER;
38505 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38506 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38507 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38508 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38509 l_recog_line_1 NUMBER;
38510 l_recog_line_2 NUMBER;
38511
38512 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38513 l_bflow_applied_to_amt NUMBER; -- 5132302
38514 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38515
38516 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38517
38518 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38519 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38520
38521 ---------------------------------------------------------------------------------------------------------------
38522
38523
38524 --
38525 -- bulk performance
38526 --
38527 l_balance_type_code VARCHAR2(1);
38528 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38529 l_log_module VARCHAR2(240);
38530
38531 --
38532 -- Upgrade strategy
38533 --
38534 l_actual_upg_option VARCHAR2(1);
38535 l_enc_upg_option VARCHAR2(1);
38536
38537 --
38538 BEGIN
38539 --
38540 IF g_log_enabled THEN
38541 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
38542 END IF;
38543 --
38544 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38545
38546 trace
38547 (p_msg => 'BEGIN of AcctLineType_72'
38548 ,p_level => C_LEVEL_PROCEDURE
38549 ,p_module => l_log_module);
38550
38551 END IF;
38552 --
38553 l_component_type := 'AMB_JLT';
38554 l_component_code := 'FV_REL_RESERVE_CR';
38555 l_component_type_code := 'S';
38556 l_component_appl_id := 201;
38557 l_amb_context_code := 'DEFAULT';
38558 l_entity_code := 'RELEASE';
38559 l_event_class_code := 'RELEASE';
38560 l_event_type_code := 'RELEASE_ALL';
38561 l_line_definition_owner_code := 'S';
38562 l_line_definition_code := 'FV_RELEASE_ALL';
38563 --
38564 l_balance_type_code := 'A';
38565 l_segment := NULL;
38566 l_ccid := NULL;
38567 l_adr_transaction_coa_id := NULL;
38568 l_adr_accounting_coa_id := NULL;
38569 l_adr_flexfield_segment_code := NULL;
38570 l_adr_flex_value_set_id := NULL;
38571 l_adr_value_type_code := NULL;
38572 l_adr_value_combination_id := NULL;
38573 l_adr_value_segment_code := NULL;
38574
38575 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38576 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
38577 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38578 l_budgetary_control_flag := 'Y';
38579
38580 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38581 l_bflow_applied_to_amt := NULL; -- 5132302
38582 l_entered_amt_idx := NULL; -- 4262811
38583 l_accted_amt_idx := NULL; -- 4262811
38584 l_acc_rev_flag := NULL; -- 4262811
38585 l_accrual_line_num := NULL; -- 4262811
38586 l_tmp_amt := NULL; -- 4262811
38587 --
38588
38589 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38590 l_balance_type_code <> 'B' THEN
38591 IF NVL(
38592 xla_ae_sources_pkg.GetSystemSourceChar(
38593 p_source_code => 'XLA_EVENT_TYPE_CODE'
38594 , p_source_type_code => 'Y'
38595 , p_source_application_id => 602
38596 ),'
38597 ') = 'RELEASE_RESERVED' AND
38598 NVL(p_source_13,'
38599 ') = 'M'
38600 THEN
38601
38602 --
38603 XLA_AE_LINES_PKG.SetNewLine;
38604
38605 p_balance_type_code := l_balance_type_code;
38606 -- set the flag so later we will know whether the gain loss line needs to be created
38607
38608 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38609 p_actual_flag :='A';
38610 END IF;
38611
38612 --
38613 -- bulk performance
38614 --
38615 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38616 p_header_num => 0); -- 4262811
38617 --
38618 -- set accounting line options
38619 --
38620 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38621 p_natural_side_code => 'C'
38622 , p_gain_or_loss_flag => 'N'
38623 , p_gl_transfer_mode_code => 'S'
38624 , p_acct_entry_type_code => 'A'
38625 , p_switch_side_flag => 'N'
38626 , p_merge_duplicate_code => 'N'
38627 );
38628 --
38629 l_acc_rev_natural_side_code := 'D'; -- 4262811
38630 --
38631 --
38632 -- set accounting line type info
38633 --
38634 xla_ae_lines_pkg.SetAcctLineType
38635 (p_component_type => l_component_type
38636 ,p_event_type_code => l_event_type_code
38637 ,p_line_definition_owner_code => l_line_definition_owner_code
38638 ,p_line_definition_code => l_line_definition_code
38639 ,p_accounting_line_code => l_component_code
38640 ,p_accounting_line_type_code => l_component_type_code
38641 ,p_accounting_line_appl_id => l_component_appl_id
38642 ,p_amb_context_code => l_amb_context_code
38643 ,p_entity_code => l_entity_code
38644 ,p_event_class_code => l_event_class_code);
38645 --
38646 -- set accounting class
38647 --
38648 xla_ae_lines_pkg.SetAcctClass(
38649 p_accounting_class_code => 'PURCHASE_ORDER'
38650 , p_ae_header_id => l_ae_header_id
38651 );
38652
38653 --
38654 -- set rounding class
38655 --
38656 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38657 'PURCHASE_ORDER';
38658
38659 --
38660 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38661 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38662 --
38663 -- bulk performance
38664 --
38665 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38666
38667 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38668 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38669
38670 -- 4955764
38671 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38672 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38673
38674 -- 4458381 Public Sector Enh
38675
38676 --
38677 -- set accounting attributes for the line type
38678 --
38679 l_entered_amt_idx := 23;
38680 l_accted_amt_idx := 28;
38681 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38682 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38683 l_rec_acct_attrs.array_char_value(1) := p_source_15;
38684 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
38685 l_rec_acct_attrs.array_num_value(2) :=
38686 xla_ae_sources_pkg.GetSystemSourceNum(
38687 p_source_code => 'XLA_EVENT_APPL_ID'
38688 , p_source_type_code => 'Y'
38689 , p_source_application_id => 602
38690 );
38691 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
38692 l_rec_acct_attrs.array_char_value(3) := p_source_17;
38693 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
38694 l_rec_acct_attrs.array_char_value(4) :=
38695 xla_ae_sources_pkg.GetSystemSourceChar(
38696 p_source_code => 'XLA_ENTITY_CODE'
38697 , p_source_type_code => 'Y'
38698 , p_source_application_id => 602
38699 );
38700 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
38701 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
38702 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
38703 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
38704 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
38705 l_rec_acct_attrs.array_num_value(7) := p_source_21;
38706 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38707 l_rec_acct_attrs.array_char_value(8) := p_source_22;
38708 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
38709 l_rec_acct_attrs.array_char_value(9) := p_source_23;
38710 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
38711 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
38712 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38713 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
38714 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
38715 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
38716 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
38717 l_rec_acct_attrs.array_char_value(13) := p_source_17;
38718 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
38719 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
38720 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
38721 l_rec_acct_attrs.array_num_value(15) := p_source_26;
38722 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
38723 l_rec_acct_attrs.array_char_value(16) := p_source_27;
38724 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
38725 l_rec_acct_attrs.array_num_value(17) := p_source_28;
38726 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
38727 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
38728 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
38729 l_rec_acct_attrs.array_num_value(19) := p_source_26;
38730 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
38731 l_rec_acct_attrs.array_char_value(20) := p_source_27;
38732 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
38733 l_rec_acct_attrs.array_num_value(21) := p_source_28;
38734 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
38735 l_rec_acct_attrs.array_char_value(22) := p_source_29;
38736 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
38737 l_rec_acct_attrs.array_num_value(23) := p_source_26;
38738 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
38739 l_rec_acct_attrs.array_char_value(24) := p_source_27;
38740 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
38741 l_rec_acct_attrs.array_date_value(25) := p_source_35;
38742 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
38743 l_rec_acct_attrs.array_num_value(26) := p_source_36;
38744 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
38745 l_rec_acct_attrs.array_char_value(27) := p_source_37;
38746 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
38747 l_rec_acct_attrs.array_num_value(28) := p_source_28;
38748 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
38749 l_rec_acct_attrs.array_char_value(29) := p_source_31;
38750 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
38751 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
38752 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
38753 l_rec_acct_attrs.array_char_value(31) := p_source_22;
38754 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
38755 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_41);
38756 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
38757 l_rec_acct_attrs.array_num_value(33) := p_source_32;
38758 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
38759 l_rec_acct_attrs.array_num_value(34) := p_source_32;
38760
38761 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38762 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38763
38764 ---------------------------------------------------------------------------------------------------------------
38765 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38769 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38766 ---------------------------------------------------------------------------------------------------------------
38767 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38768
38770 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38771
38772 IF xla_accounting_cache_pkg.GetValueChar
38773 (p_source_code => 'LEDGER_CATEGORY_CODE'
38774 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38775 AND l_bflow_method_code = 'PRIOR_ENTRY'
38776 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38777 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38778 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38779 )
38780 THEN
38781 xla_ae_lines_pkg.BflowUpgEntry
38782 (p_business_method_code => l_bflow_method_code
38783 ,p_business_class_code => l_bflow_class_code
38784 ,p_balance_type => l_balance_type_code);
38785 ELSE
38786 NULL;
38787 -- No business flow processing for business flow method of NONE.
38788 END IF;
38789
38790 --
38791 -- call analytical criteria
38792 --
38793
38794 --
38795 -- call description
38796 --
38797
38798 xla_ae_lines_pkg.SetLineDescription(
38799 p_ae_header_id => l_ae_header_id
38800 ,p_description => Description_2 (
38801 p_application_id => p_application_id
38802 , p_ae_header_id => l_ae_header_id
38803 , p_source_3 => p_source_3
38804 )
38805 );
38806
38807
38808 --
38809 -- call ADRs
38810 -- Bug 4922099
38811 --
38812 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38813 (NVL(l_actual_upg_option, 'N') = 'O') OR
38814 (NVL(l_enc_upg_option, 'N') = 'O')
38815 )
38816 THEN
38817 NULL;
38818 --
38819 --
38820
38821 l_ccid := AcctDerRule_9(
38822 p_application_id => p_application_id
38823 , p_ae_header_id => l_ae_header_id
38824 , p_source_9 => p_source_9
38825 , x_transaction_coa_id => l_adr_transaction_coa_id
38826 , x_accounting_coa_id => l_adr_accounting_coa_id
38827 , x_value_type_code => l_adr_value_type_code
38828 , p_side => 'NA'
38829 );
38830
38831 xla_ae_lines_pkg.set_ccid(
38832 p_code_combination_id => l_ccid
38833 , p_value_type_code => l_adr_value_type_code
38834 , p_transaction_coa_id => l_adr_transaction_coa_id
38835 , p_accounting_coa_id => l_adr_accounting_coa_id
38836 , p_adr_code => 'FV_ACCOUNT_RULE'
38837 , p_adr_type_code => 'S'
38838 , p_component_type => l_component_type
38839 , p_component_code => l_component_code
38840 , p_component_type_code => l_component_type_code
38841 , p_component_appl_id => l_component_appl_id
38842 , p_amb_context_code => l_amb_context_code
38843 , p_side => 'NA'
38844 );
38845
38846
38847 l_segment := AcctDerRule_8(
38848 p_application_id => p_application_id
38849 , p_ae_header_id => l_ae_header_id
38850 , x_transaction_coa_id => l_adr_transaction_coa_id
38851 , x_accounting_coa_id => l_adr_accounting_coa_id
38852 , x_flexfield_segment_code => l_adr_flexfield_segment_code
38853 , x_flex_value_set_id => l_adr_flex_value_set_id
38854 , x_value_type_code => l_adr_value_type_code
38855 , x_value_combination_id => l_adr_value_combination_id
38856 , x_value_segment_code => l_adr_value_segment_code
38857 , p_side => 'NA'
38858 , p_override_seg_flag => 'Y'
38859 );
38860
38861 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
38862
38863 xla_ae_lines_pkg.set_segment(
38864 p_to_segment_code => 'GL_ACCOUNT'
38865 , p_segment_value => l_segment
38866 , p_from_segment_code => l_adr_value_segment_code
38867 , p_from_combination_id => l_adr_value_combination_id
38868 , p_value_type_code => l_adr_value_type_code
38869 , p_transaction_coa_id => l_adr_transaction_coa_id
38870 , p_accounting_coa_id => l_adr_accounting_coa_id
38871 , p_flexfield_segment_code => l_adr_flexfield_segment_code
38872 , p_flex_value_set_id => l_adr_flex_value_set_id
38873 , p_adr_code => 'FV_48X101_PURCHASING'
38874 , p_adr_type_code => 'S'
38875 , p_component_type => l_component_type
38876 , p_component_code => l_component_code
38877 , p_component_type_code => l_component_type_code
38878 , p_component_appl_id => l_component_appl_id
38879 , p_amb_context_code => l_amb_context_code
38880 , p_entity_code => 'RELEASE'
38881 , p_event_class_code => 'RELEASE'
38882 , p_side => 'NA'
38883 );
38884
38885 END IF;
38886
38887 --
38888 --
38889 END IF;
38890 --
38891 -- Bug 4922099
38892 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38893 (NVL(l_enc_upg_option, 'N') = 'O')
38894 ) AND
38895 (l_bflow_method_code = 'PRIOR_ENTRY')
38896 )
38897 THEN
38898 IF
38899 --
38900 1 = 2
38901 --
38902 THEN
38903 xla_accounting_err_pkg.build_message
38904 (p_appli_s_name => 'XLA'
38905 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38906 ,p_token_1 => 'LINE_NUMBER'
38907 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38908 ,p_token_2 => 'LINE_TYPE_NAME'
38909 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38910 l_component_type
38911 ,l_component_code
38912 ,l_component_type_code
38913 ,l_component_appl_id
38914 ,l_amb_context_code
38915 ,l_entity_code
38916 ,l_event_class_code
38917 )
38918 ,p_token_3 => 'OWNER'
38919 ,p_value_3 => xla_lookups_pkg.get_meaning(
38920 p_lookup_type => 'XLA_OWNER_TYPE'
38921 ,p_lookup_code => l_component_type_code
38922 )
38923 ,p_token_4 => 'PRODUCT_NAME'
38924 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38925 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38926 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38927 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38928 ,p_ae_header_id => NULL
38929 );
38930
38931 IF (C_LEVEL_ERROR>= g_log_level) THEN
38932 trace
38933 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38934 ,p_level => C_LEVEL_ERROR
38935 ,p_module => l_log_module);
38936 END IF;
38937 END IF;
38938 END IF;
38939 --
38940 --
38941 ------------------------------------------------------------------------------------------------
38942 -- 4219869 Business Flow
38943 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38944 -- Prior Entry. Currently, the following code is always generated.
38945 ------------------------------------------------------------------------------------------------
38946 XLA_AE_LINES_PKG.ValidateCurrentLine;
38947
38948 ------------------------------------------------------------------------------------
38949 -- 4219869 Business Flow
38950 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38951 ------------------------------------------------------------------------------------
38952 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38953
38954 ----------------------------------------------------------------------------------
38955 -- 4219869 Business Flow
38956 -- Update journal entry status -- Need to generate this within IF <condition>
38957 ----------------------------------------------------------------------------------
38958 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38959 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38960 ,p_balance_type_code => l_balance_type_code
38961 );
38962
38963 -------------------------------------------------------------------------------------------
38964 -- 4262811 - Generate the Accrual Reversal lines
38965 -------------------------------------------------------------------------------------------
38966 BEGIN
38967 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38968 (g_array_event(p_event_id).array_value_num('header_index'));
38972 EXCEPTION
38969 IF l_acc_rev_flag IS NULL THEN
38970 l_acc_rev_flag := 'N';
38971 END IF;
38973 WHEN OTHERS THEN
38974 l_acc_rev_flag := 'N';
38975 END;
38976 --
38977 IF (l_acc_rev_flag = 'Y') THEN
38978
38979 -- 4645092 ------------------------------------------------------------------------------
38980 -- To allow MPA report to determine if it should generate report process
38981 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38982 ------------------------------------------------------------------------------------------
38983
38984 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38985 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38986
38987 --
38988 -- Update the line information that should be overwritten
38989 --
38990 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38991 p_header_num => 1);
38992 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38993
38994 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38995
38996 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38997 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38998 END IF;
38999
39000 --
39001 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39002 --
39003 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39004 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39005 ELSE
39006 ---------------------------------------------------------------------------------------------------
39007 -- 4262811a Switch Sign
39008 ---------------------------------------------------------------------------------------------------
39009 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39010 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39011 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39012 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39013 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39014 -- 5132302
39015 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39016 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39017
39018 END IF;
39019
39020 -- 4955764
39021 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39022 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39023
39024
39025 XLA_AE_LINES_PKG.ValidateCurrentLine;
39026 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39027
39028 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39029 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39030 ,p_balance_type_code => l_balance_type_code);
39031
39032 END IF;
39033
39034 -----------------------------------------------------------------------------------------
39035 -- 4262811 Multiperiod Accounting
39036 -----------------------------------------------------------------------------------------
39037 -- No MPA option is assigned.
39038
39039
39040 END IF;
39041 END IF;
39042 --
39043
39044 --
39045 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39046 trace
39047 (p_msg => 'END of AcctLineType_72'
39048 ,p_level => C_LEVEL_PROCEDURE
39049 ,p_module => l_log_module);
39050 END IF;
39051 --
39052 EXCEPTION
39053 WHEN xla_exceptions_pkg.application_exception THEN
39054 RAISE;
39055 WHEN OTHERS THEN
39056 xla_exceptions_pkg.raise_message
39057 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_72');
39058 END AcctLineType_72;
39059 --
39060
39061 ---------------------------------------
39062 --
39063 -- PRIVATE FUNCTION
39064 -- AcctLineType_73
39065 --
39066 ---------------------------------------
39067 PROCEDURE AcctLineType_73 (
39068 p_application_id IN NUMBER
39069 ,p_event_id IN NUMBER
39070 ,p_calculate_acctd_flag IN VARCHAR2
39071 ,p_calculate_g_l_flag IN VARCHAR2
39072 ,p_actual_flag IN OUT VARCHAR2
39073 ,p_balance_type_code OUT VARCHAR2
39074 ,p_gain_or_loss_ref OUT VARCHAR2
39075
39076 --Journal entry Line Description
39077 , p_source_3 IN VARCHAR2
39078 --Federal Fund Category
39079 , p_source_7 IN VARCHAR2
39080 --Federal Fund Expired Status
39081 , p_source_8 IN VARCHAR2
39082 --Budget Account
39083 , p_source_9 IN NUMBER
39084 --Main Or Backing Code
39085 , p_source_13 IN VARCHAR2
39086 --Accounting Reversal Flag
39087 , p_source_15 IN VARCHAR2
39088 --Distribution Link Type
39089 , p_source_17 IN VARCHAR2
39090 --PO Distribution Identifier
39091 , p_source_19 IN NUMBER
39092 --Applied To Application Identifier
39093 , p_source_21 IN NUMBER
39094 --Applied To Distribution Link Type
39095 , p_source_22 IN VARCHAR2
39096 --Applied To Entity Code
39097 , p_source_23 IN VARCHAR2
39098 --Applied To Distribution Identifier 1
39099 , p_source_24 IN NUMBER
39100 --Applied To Header Identifier 1
39101 , p_source_25 IN NUMBER
39102 --Entered Amount
39103 , p_source_26 IN NUMBER
39104 --Currency Code
39105 , p_source_27 IN VARCHAR2
39106 --Accounted Amount
39107 , p_source_28 IN NUMBER
39108 --PO Encumbrance Upgrade Option
39109 , p_source_29 IN VARCHAR2
39110 --JFMIP Reference
39111 , p_source_31 IN VARCHAR2
39112 --PO Upgrade Encumbrance Type Identifier
39113 , p_source_32 IN NUMBER
39114 --Currency Conversion Date
39115 , p_source_35 IN DATE
39116 --Currency Conversion Rate
39117 , p_source_36 IN NUMBER
39118 --Currency Conversion Type
39119 , p_source_37 IN VARCHAR2
39120 --PO Release Identifier
39121 , p_source_41 IN NUMBER
39122 )
39123 IS
39124
39125 l_component_type VARCHAR2(80);
39126 l_component_code VARCHAR2(30);
39127 l_component_type_code VARCHAR2(1);
39128 l_component_appl_id INTEGER;
39129 l_amb_context_code VARCHAR2(30);
39130 l_entity_code VARCHAR2(30);
39131 l_event_class_code VARCHAR2(30);
39132 l_ae_header_id NUMBER;
39133 l_event_type_code VARCHAR2(30);
39134 l_line_definition_code VARCHAR2(30);
39135 l_line_definition_owner_code VARCHAR2(1);
39136 --
39137 -- adr variables
39138 l_segment VARCHAR2(30);
39139 l_ccid NUMBER;
39140 l_adr_transaction_coa_id NUMBER;
39141 l_adr_accounting_coa_id NUMBER;
39142 l_adr_flexfield_segment_code VARCHAR2(30);
39143 l_adr_flex_value_set_id NUMBER;
39144 l_adr_value_type_code VARCHAR2(30);
39145 l_adr_value_combination_id NUMBER;
39146 l_adr_value_segment_code VARCHAR2(30);
39147
39148 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39149 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39150 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39151 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39152
39153 -- 4262811 Variables ------------------------------------------------------------------------------------------
39154 l_entered_amt_idx NUMBER;
39155 l_accted_amt_idx NUMBER;
39156 l_acc_rev_flag VARCHAR2(1);
39157 l_accrual_line_num NUMBER;
39158 l_tmp_amt NUMBER;
39159 l_acc_rev_natural_side_code VARCHAR2(1);
39160
39161 l_num_entries NUMBER;
39162 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39163 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39164 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39165 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39166 l_recog_line_1 NUMBER;
39167 l_recog_line_2 NUMBER;
39168
39169 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39170 l_bflow_applied_to_amt NUMBER; -- 5132302
39171 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39172
39173 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39174
39175 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39176 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39177
39178 ---------------------------------------------------------------------------------------------------------------
39179
39180
39181 --
39182 -- bulk performance
39183 --
39184 l_balance_type_code VARCHAR2(1);
39185 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39186 l_log_module VARCHAR2(240);
39187
39188 --
39189 -- Upgrade strategy
39190 --
39191 l_actual_upg_option VARCHAR2(1);
39192 l_enc_upg_option VARCHAR2(1);
39193
39194 --
39195 BEGIN
39196 --
39197 IF g_log_enabled THEN
39198 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
39199 END IF;
39200 --
39201 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39202
39203 trace
39204 (p_msg => 'BEGIN of AcctLineType_73'
39205 ,p_level => C_LEVEL_PROCEDURE
39206 ,p_module => l_log_module);
39207
39208 END IF;
39209 --
39210 l_component_type := 'AMB_JLT';
39211 l_component_code := 'FV_REL_RESERVE_DR';
39212 l_component_type_code := 'S';
39213 l_component_appl_id := 201;
39214 l_amb_context_code := 'DEFAULT';
39215 l_entity_code := 'RELEASE';
39216 l_event_class_code := 'RELEASE';
39217 l_event_type_code := 'RELEASE_ALL';
39218 l_line_definition_owner_code := 'S';
39219 l_line_definition_code := 'FV_RELEASE_ALL';
39220 --
39221 l_balance_type_code := 'A';
39222 l_segment := NULL;
39223 l_ccid := NULL;
39224 l_adr_transaction_coa_id := NULL;
39225 l_adr_accounting_coa_id := NULL;
39226 l_adr_flexfield_segment_code := NULL;
39227 l_adr_flex_value_set_id := NULL;
39228 l_adr_value_type_code := NULL;
39229 l_adr_value_combination_id := NULL;
39230 l_adr_value_segment_code := NULL;
39231
39232 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39233 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
39234 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39235 l_budgetary_control_flag := 'Y';
39236
39237 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39238 l_bflow_applied_to_amt := NULL; -- 5132302
39239 l_entered_amt_idx := NULL; -- 4262811
39240 l_accted_amt_idx := NULL; -- 4262811
39241 l_acc_rev_flag := NULL; -- 4262811
39242 l_accrual_line_num := NULL; -- 4262811
39243 l_tmp_amt := NULL; -- 4262811
39244 --
39245
39246 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39247 l_balance_type_code <> 'B' THEN
39248 IF NVL(
39249 xla_ae_sources_pkg.GetSystemSourceChar(
39250 p_source_code => 'XLA_EVENT_TYPE_CODE'
39251 , p_source_type_code => 'Y'
39252 , p_source_application_id => 602
39253 ),'
39254 ') = 'RELEASE_RESERVED' AND
39255 NVL(p_source_13,'
39256 ') = 'M'
39257 THEN
39258
39259 --
39260 XLA_AE_LINES_PKG.SetNewLine;
39261
39262 p_balance_type_code := l_balance_type_code;
39263 -- set the flag so later we will know whether the gain loss line needs to be created
39264
39265 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39266 p_actual_flag :='A';
39267 END IF;
39268
39269 --
39270 -- bulk performance
39271 --
39272 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39273 p_header_num => 0); -- 4262811
39274 --
39275 -- set accounting line options
39276 --
39277 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39278 p_natural_side_code => 'D'
39279 , p_gain_or_loss_flag => 'N'
39280 , p_gl_transfer_mode_code => 'S'
39281 , p_acct_entry_type_code => 'A'
39282 , p_switch_side_flag => 'N'
39283 , p_merge_duplicate_code => 'N'
39284 );
39285 --
39286 l_acc_rev_natural_side_code := 'C'; -- 4262811
39287 --
39288 --
39289 -- set accounting line type info
39290 --
39291 xla_ae_lines_pkg.SetAcctLineType
39292 (p_component_type => l_component_type
39293 ,p_event_type_code => l_event_type_code
39294 ,p_line_definition_owner_code => l_line_definition_owner_code
39295 ,p_line_definition_code => l_line_definition_code
39296 ,p_accounting_line_code => l_component_code
39297 ,p_accounting_line_type_code => l_component_type_code
39298 ,p_accounting_line_appl_id => l_component_appl_id
39299 ,p_amb_context_code => l_amb_context_code
39300 ,p_entity_code => l_entity_code
39301 ,p_event_class_code => l_event_class_code);
39302 --
39303 -- set accounting class
39304 --
39305 xla_ae_lines_pkg.SetAcctClass(
39306 p_accounting_class_code => 'PURCHASE_ORDER'
39307 , p_ae_header_id => l_ae_header_id
39308 );
39309
39310 --
39311 -- set rounding class
39312 --
39313 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39314 'PURCHASE_ORDER';
39315
39316 --
39317 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39318 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39319 --
39320 -- bulk performance
39321 --
39322 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39323
39324 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39325 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39326
39327 -- 4955764
39328 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39329 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39330
39331 -- 4458381 Public Sector Enh
39332
39333 --
39334 -- set accounting attributes for the line type
39335 --
39336 l_entered_amt_idx := 23;
39337 l_accted_amt_idx := 28;
39338 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39339 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39340 l_rec_acct_attrs.array_char_value(1) := p_source_15;
39341 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
39342 l_rec_acct_attrs.array_num_value(2) :=
39343 xla_ae_sources_pkg.GetSystemSourceNum(
39344 p_source_code => 'XLA_EVENT_APPL_ID'
39345 , p_source_type_code => 'Y'
39346 , p_source_application_id => 602
39347 );
39348 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
39349 l_rec_acct_attrs.array_char_value(3) := p_source_17;
39350 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
39351 l_rec_acct_attrs.array_char_value(4) :=
39352 xla_ae_sources_pkg.GetSystemSourceChar(
39353 p_source_code => 'XLA_ENTITY_CODE'
39354 , p_source_type_code => 'Y'
39355 , p_source_application_id => 602
39356 );
39357 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
39358 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
39359 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
39360 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
39361 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
39362 l_rec_acct_attrs.array_num_value(7) := p_source_21;
39363 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39364 l_rec_acct_attrs.array_char_value(8) := p_source_22;
39365 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
39366 l_rec_acct_attrs.array_char_value(9) := p_source_23;
39367 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
39368 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
39369 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39370 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
39371 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
39372 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
39373 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
39374 l_rec_acct_attrs.array_char_value(13) := p_source_17;
39375 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
39376 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
39377 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
39378 l_rec_acct_attrs.array_num_value(15) := p_source_26;
39379 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
39380 l_rec_acct_attrs.array_char_value(16) := p_source_27;
39381 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
39382 l_rec_acct_attrs.array_num_value(17) := p_source_28;
39383 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
39384 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
39385 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
39386 l_rec_acct_attrs.array_num_value(19) := p_source_26;
39387 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
39388 l_rec_acct_attrs.array_char_value(20) := p_source_27;
39389 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
39390 l_rec_acct_attrs.array_num_value(21) := p_source_28;
39391 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
39392 l_rec_acct_attrs.array_char_value(22) := p_source_29;
39393 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
39394 l_rec_acct_attrs.array_num_value(23) := p_source_26;
39395 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
39396 l_rec_acct_attrs.array_char_value(24) := p_source_27;
39397 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
39398 l_rec_acct_attrs.array_date_value(25) := p_source_35;
39399 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
39400 l_rec_acct_attrs.array_num_value(26) := p_source_36;
39401 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
39402 l_rec_acct_attrs.array_char_value(27) := p_source_37;
39403 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
39404 l_rec_acct_attrs.array_num_value(28) := p_source_28;
39405 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
39406 l_rec_acct_attrs.array_char_value(29) := p_source_31;
39407 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
39408 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
39409 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
39410 l_rec_acct_attrs.array_char_value(31) := p_source_22;
39411 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
39412 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_41);
39413 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
39414 l_rec_acct_attrs.array_num_value(33) := p_source_32;
39415 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
39416 l_rec_acct_attrs.array_num_value(34) := p_source_32;
39417
39418 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39419 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39420
39421 ---------------------------------------------------------------------------------------------------------------
39422 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39423 ---------------------------------------------------------------------------------------------------------------
39424 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39425
39426 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39427 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39428
39429 IF xla_accounting_cache_pkg.GetValueChar
39430 (p_source_code => 'LEDGER_CATEGORY_CODE'
39431 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39432 AND l_bflow_method_code = 'PRIOR_ENTRY'
39433 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39434 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39435 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39436 )
39437 THEN
39438 xla_ae_lines_pkg.BflowUpgEntry
39439 (p_business_method_code => l_bflow_method_code
39440 ,p_business_class_code => l_bflow_class_code
39441 ,p_balance_type => l_balance_type_code);
39442 ELSE
39443 NULL;
39444 -- No business flow processing for business flow method of NONE.
39445 END IF;
39446
39447 --
39448 -- call analytical criteria
39449 --
39450
39451 --
39452 -- call description
39453 --
39454
39455 xla_ae_lines_pkg.SetLineDescription(
39456 p_ae_header_id => l_ae_header_id
39457 ,p_description => Description_2 (
39458 p_application_id => p_application_id
39459 , p_ae_header_id => l_ae_header_id
39460 , p_source_3 => p_source_3
39461 )
39462 );
39463
39464
39465 --
39466 -- call ADRs
39467 -- Bug 4922099
39468 --
39469 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39470 (NVL(l_actual_upg_option, 'N') = 'O') OR
39471 (NVL(l_enc_upg_option, 'N') = 'O')
39472 )
39473 THEN
39474 NULL;
39475 --
39476 --
39477
39478 l_ccid := AcctDerRule_9(
39479 p_application_id => p_application_id
39480 , p_ae_header_id => l_ae_header_id
39481 , p_source_9 => p_source_9
39482 , x_transaction_coa_id => l_adr_transaction_coa_id
39483 , x_accounting_coa_id => l_adr_accounting_coa_id
39484 , x_value_type_code => l_adr_value_type_code
39485 , p_side => 'NA'
39486 );
39487
39488 xla_ae_lines_pkg.set_ccid(
39489 p_code_combination_id => l_ccid
39490 , p_value_type_code => l_adr_value_type_code
39491 , p_transaction_coa_id => l_adr_transaction_coa_id
39492 , p_accounting_coa_id => l_adr_accounting_coa_id
39493 , p_adr_code => 'FV_ACCOUNT_RULE'
39494 , p_adr_type_code => 'S'
39495 , p_component_type => l_component_type
39496 , p_component_code => l_component_code
39497 , p_component_type_code => l_component_type_code
39498 , p_component_appl_id => l_component_appl_id
39499 , p_amb_context_code => l_amb_context_code
39500 , p_side => 'NA'
39501 );
39502
39503
39504 l_segment := AcctDerRule_5(
39505 p_application_id => p_application_id
39506 , p_ae_header_id => l_ae_header_id
39507 , p_source_7 => p_source_7
39508 , p_source_8 => p_source_8
39509 , x_transaction_coa_id => l_adr_transaction_coa_id
39510 , x_accounting_coa_id => l_adr_accounting_coa_id
39511 , x_flexfield_segment_code => l_adr_flexfield_segment_code
39512 , x_flex_value_set_id => l_adr_flex_value_set_id
39513 , x_value_type_code => l_adr_value_type_code
39514 , x_value_combination_id => l_adr_value_combination_id
39515 , x_value_segment_code => l_adr_value_segment_code
39516 , p_side => 'NA'
39517 , p_override_seg_flag => 'Y'
39518 );
39519
39520 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
39521
39522 xla_ae_lines_pkg.set_segment(
39523 p_to_segment_code => 'GL_ACCOUNT'
39524 , p_segment_value => l_segment
39525 , p_from_segment_code => l_adr_value_segment_code
39526 , p_from_combination_id => l_adr_value_combination_id
39527 , p_value_type_code => l_adr_value_type_code
39528 , p_transaction_coa_id => l_adr_transaction_coa_id
39529 , p_accounting_coa_id => l_adr_accounting_coa_id
39530 , p_flexfield_segment_code => l_adr_flexfield_segment_code
39531 , p_flex_value_set_id => l_adr_flex_value_set_id
39532 , p_adr_code => 'FV_46X002'
39533 , p_adr_type_code => 'S'
39534 , p_component_type => l_component_type
39535 , p_component_code => l_component_code
39536 , p_component_type_code => l_component_type_code
39537 , p_component_appl_id => l_component_appl_id
39541 , p_side => 'NA'
39538 , p_amb_context_code => l_amb_context_code
39539 , p_entity_code => 'RELEASE'
39540 , p_event_class_code => 'RELEASE'
39542 );
39543
39544 END IF;
39545
39546 --
39547 --
39548 END IF;
39549 --
39550 -- Bug 4922099
39551 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39552 (NVL(l_enc_upg_option, 'N') = 'O')
39553 ) AND
39554 (l_bflow_method_code = 'PRIOR_ENTRY')
39555 )
39556 THEN
39557 IF
39558 --
39559 1 = 2
39560 --
39561 THEN
39562 xla_accounting_err_pkg.build_message
39563 (p_appli_s_name => 'XLA'
39564 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39565 ,p_token_1 => 'LINE_NUMBER'
39566 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39567 ,p_token_2 => 'LINE_TYPE_NAME'
39568 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39569 l_component_type
39570 ,l_component_code
39571 ,l_component_type_code
39572 ,l_component_appl_id
39573 ,l_amb_context_code
39574 ,l_entity_code
39575 ,l_event_class_code
39576 )
39577 ,p_token_3 => 'OWNER'
39578 ,p_value_3 => xla_lookups_pkg.get_meaning(
39579 p_lookup_type => 'XLA_OWNER_TYPE'
39580 ,p_lookup_code => l_component_type_code
39581 )
39582 ,p_token_4 => 'PRODUCT_NAME'
39583 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39584 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39585 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39586 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39587 ,p_ae_header_id => NULL
39588 );
39589
39590 IF (C_LEVEL_ERROR>= g_log_level) THEN
39591 trace
39592 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39593 ,p_level => C_LEVEL_ERROR
39594 ,p_module => l_log_module);
39595 END IF;
39596 END IF;
39597 END IF;
39598 --
39599 --
39600 ------------------------------------------------------------------------------------------------
39601 -- 4219869 Business Flow
39602 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39603 -- Prior Entry. Currently, the following code is always generated.
39604 ------------------------------------------------------------------------------------------------
39605 XLA_AE_LINES_PKG.ValidateCurrentLine;
39606
39607 ------------------------------------------------------------------------------------
39608 -- 4219869 Business Flow
39609 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39610 ------------------------------------------------------------------------------------
39611 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39612
39613 ----------------------------------------------------------------------------------
39614 -- 4219869 Business Flow
39615 -- Update journal entry status -- Need to generate this within IF <condition>
39616 ----------------------------------------------------------------------------------
39617 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39618 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39619 ,p_balance_type_code => l_balance_type_code
39620 );
39621
39622 -------------------------------------------------------------------------------------------
39623 -- 4262811 - Generate the Accrual Reversal lines
39624 -------------------------------------------------------------------------------------------
39625 BEGIN
39626 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39627 (g_array_event(p_event_id).array_value_num('header_index'));
39628 IF l_acc_rev_flag IS NULL THEN
39629 l_acc_rev_flag := 'N';
39630 END IF;
39631 EXCEPTION
39632 WHEN OTHERS THEN
39633 l_acc_rev_flag := 'N';
39634 END;
39635 --
39636 IF (l_acc_rev_flag = 'Y') THEN
39637
39638 -- 4645092 ------------------------------------------------------------------------------
39639 -- To allow MPA report to determine if it should generate report process
39640 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39641 ------------------------------------------------------------------------------------------
39642
39643 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39644 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39645
39646 --
39647 -- Update the line information that should be overwritten
39648 --
39649 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39650 p_header_num => 1);
39651 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39652
39653 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39654
39655 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39656 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39657 END IF;
39658
39659 --
39660 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39661 --
39662 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39663 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39664 ELSE
39665 ---------------------------------------------------------------------------------------------------
39666 -- 4262811a Switch Sign
39667 ---------------------------------------------------------------------------------------------------
39668 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39669 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39670 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39671 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39672 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39673 -- 5132302
39674 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39675 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39676
39677 END IF;
39678
39679 -- 4955764
39680 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39681 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39682
39683
39684 XLA_AE_LINES_PKG.ValidateCurrentLine;
39685 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39686
39687 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39688 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39689 ,p_balance_type_code => l_balance_type_code);
39690
39691 END IF;
39692
39693 -----------------------------------------------------------------------------------------
39694 -- 4262811 Multiperiod Accounting
39695 -----------------------------------------------------------------------------------------
39696 -- No MPA option is assigned.
39697
39698
39699 END IF;
39700 END IF;
39701 --
39702
39703 --
39704 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39705 trace
39706 (p_msg => 'END of AcctLineType_73'
39707 ,p_level => C_LEVEL_PROCEDURE
39708 ,p_module => l_log_module);
39709 END IF;
39710 --
39711 EXCEPTION
39712 WHEN xla_exceptions_pkg.application_exception THEN
39713 RAISE;
39714 WHEN OTHERS THEN
39715 xla_exceptions_pkg.raise_message
39716 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_73');
39717 END AcctLineType_73;
39718 --
39719
39720 ---------------------------------------
39721 --
39722 -- PRIVATE FUNCTION
39723 -- AcctLineType_74
39724 --
39725 ---------------------------------------
39726 PROCEDURE AcctLineType_74 (
39727 p_application_id IN NUMBER
39728 ,p_event_id IN NUMBER
39729 ,p_calculate_acctd_flag IN VARCHAR2
39730 ,p_calculate_g_l_flag IN VARCHAR2
39731 ,p_actual_flag IN OUT VARCHAR2
39732 ,p_balance_type_code OUT VARCHAR2
39733 ,p_gain_or_loss_ref OUT VARCHAR2
39734
39735 --Federal Fund Category
39736 , p_source_7 IN VARCHAR2
39737 --Federal Fund Expired Status
39738 , p_source_8 IN VARCHAR2
39739 --Budget Account
39740 , p_source_9 IN NUMBER
39741 --Main Or Backing Code
39742 , p_source_13 IN VARCHAR2
39743 --Accounting Reversal Flag
39744 , p_source_15 IN VARCHAR2
39745 --Distribution Link Type
39746 , p_source_17 IN VARCHAR2
39747 --PO Distribution Identifier
39748 , p_source_19 IN NUMBER
39749 --Applied To Application Identifier
39750 , p_source_21 IN NUMBER
39751 --Applied To Distribution Link Type
39752 , p_source_22 IN VARCHAR2
39753 --Applied To Entity Code
39754 , p_source_23 IN VARCHAR2
39755 --Applied To Distribution Identifier 1
39756 , p_source_24 IN NUMBER
39757 --Applied To Header Identifier 1
39758 , p_source_25 IN NUMBER
39759 --Entered Amount
39760 , p_source_26 IN NUMBER
39761 --Currency Code
39762 , p_source_27 IN VARCHAR2
39763 --Accounted Amount
39764 , p_source_28 IN NUMBER
39765 --PO Encumbrance Upgrade Option
39766 , p_source_29 IN VARCHAR2
39767 --JFMIP Reference
39768 , p_source_31 IN VARCHAR2
39769 --PO Upgrade Encumbrance Type Identifier
39770 , p_source_32 IN NUMBER
39771 --PO Release Identifier
39772 , p_source_41 IN NUMBER
39773 )
39774 IS
39775
39776 l_component_type VARCHAR2(80);
39777 l_component_code VARCHAR2(30);
39778 l_component_type_code VARCHAR2(1);
39779 l_component_appl_id INTEGER;
39780 l_amb_context_code VARCHAR2(30);
39781 l_entity_code VARCHAR2(30);
39782 l_event_class_code VARCHAR2(30);
39783 l_ae_header_id NUMBER;
39784 l_event_type_code VARCHAR2(30);
39785 l_line_definition_code VARCHAR2(30);
39786 l_line_definition_owner_code VARCHAR2(1);
39787 --
39788 -- adr variables
39789 l_segment VARCHAR2(30);
39790 l_ccid NUMBER;
39791 l_adr_transaction_coa_id NUMBER;
39792 l_adr_accounting_coa_id NUMBER;
39793 l_adr_flexfield_segment_code VARCHAR2(30);
39794 l_adr_flex_value_set_id NUMBER;
39795 l_adr_value_type_code VARCHAR2(30);
39796 l_adr_value_combination_id NUMBER;
39797 l_adr_value_segment_code VARCHAR2(30);
39798
39799 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39800 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39801 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39802 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39803
39804 -- 4262811 Variables ------------------------------------------------------------------------------------------
39805 l_entered_amt_idx NUMBER;
39806 l_accted_amt_idx NUMBER;
39807 l_acc_rev_flag VARCHAR2(1);
39808 l_accrual_line_num NUMBER;
39809 l_tmp_amt NUMBER;
39810 l_acc_rev_natural_side_code VARCHAR2(1);
39811
39812 l_num_entries NUMBER;
39813 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39814 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39815 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39816 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39817 l_recog_line_1 NUMBER;
39818 l_recog_line_2 NUMBER;
39819
39820 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39821 l_bflow_applied_to_amt NUMBER; -- 5132302
39822 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39823
39824 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39825
39826 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39827 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39828
39829 ---------------------------------------------------------------------------------------------------------------
39830
39831
39832 --
39833 -- bulk performance
39834 --
39835 l_balance_type_code VARCHAR2(1);
39836 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39837 l_log_module VARCHAR2(240);
39838
39839 --
39840 -- Upgrade strategy
39841 --
39842 l_actual_upg_option VARCHAR2(1);
39843 l_enc_upg_option VARCHAR2(1);
39844
39845 --
39846 BEGIN
39847 --
39848 IF g_log_enabled THEN
39849 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
39850 END IF;
39851 --
39852 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39853
39854 trace
39855 (p_msg => 'BEGIN of AcctLineType_74'
39856 ,p_level => C_LEVEL_PROCEDURE
39857 ,p_module => l_log_module);
39858
39859 END IF;
39860 --
39861 l_component_type := 'AMB_JLT';
39862 l_component_code := 'FV_REL_REVERSE_CR';
39863 l_component_type_code := 'S';
39864 l_component_appl_id := 201;
39865 l_amb_context_code := 'DEFAULT';
39866 l_entity_code := 'RELEASE';
39867 l_event_class_code := 'RELEASE';
39868 l_event_type_code := 'RELEASE_ALL';
39869 l_line_definition_owner_code := 'S';
39870 l_line_definition_code := 'FV_RELEASE_ALL';
39871 --
39872 l_balance_type_code := 'A';
39873 l_segment := NULL;
39874 l_ccid := NULL;
39875 l_adr_transaction_coa_id := NULL;
39876 l_adr_accounting_coa_id := NULL;
39877 l_adr_flexfield_segment_code := NULL;
39878 l_adr_flex_value_set_id := NULL;
39879 l_adr_value_type_code := NULL;
39880 l_adr_value_combination_id := NULL;
39881 l_adr_value_segment_code := NULL;
39882
39883 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
39884 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
39885 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
39886 l_budgetary_control_flag := 'Y';
39887
39888 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39889 l_bflow_applied_to_amt := NULL; -- 5132302
39890 l_entered_amt_idx := NULL; -- 4262811
39891 l_accted_amt_idx := NULL; -- 4262811
39892 l_acc_rev_flag := NULL; -- 4262811
39893 l_accrual_line_num := NULL; -- 4262811
39894 l_tmp_amt := NULL; -- 4262811
39895 --
39896
39897 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39898 l_balance_type_code <> 'B' THEN
39899 IF (NVL(
39900 xla_ae_sources_pkg.GetSystemSourceChar(
39901 p_source_code => 'XLA_EVENT_TYPE_CODE'
39902 , p_source_type_code => 'Y'
39903 , p_source_application_id => 602
39904 ),'
39905 ') = 'RELEASE_REJECTED' OR
39906 NVL(
39907 xla_ae_sources_pkg.GetSystemSourceChar(
39908 p_source_code => 'XLA_EVENT_TYPE_CODE'
39909 , p_source_type_code => 'Y'
39910 , p_source_application_id => 602
39911 ),'
39912 ') = 'RELEASE_UNRESERVED' OR
39913 NVL(
39914 xla_ae_sources_pkg.GetSystemSourceChar(
39915 p_source_code => 'XLA_EVENT_TYPE_CODE'
39916 , p_source_type_code => 'Y'
39917 , p_source_application_id => 602
39918 ),'
39919 ') = 'RELEASE_INV_CANCELLED' OR
39920 NVL(
39921 xla_ae_sources_pkg.GetSystemSourceChar(
39922 p_source_code => 'XLA_EVENT_TYPE_CODE'
39923 , p_source_type_code => 'Y'
39924 , p_source_application_id => 602
39925 ),'
39926 ') = 'RELEASE_FINAL_CLOSED') AND
39927 NVL(p_source_13,'
39928 ') = 'M'
39929 THEN
39930
39931 --
39932 XLA_AE_LINES_PKG.SetNewLine;
39933
39934 p_balance_type_code := l_balance_type_code;
39935 -- set the flag so later we will know whether the gain loss line needs to be created
39936
39937 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39938 p_actual_flag :='A';
39939 END IF;
39940
39941 --
39942 -- bulk performance
39943 --
39944 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39945 p_header_num => 0); -- 4262811
39946 --
39947 -- set accounting line options
39948 --
39949 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39950 p_natural_side_code => 'C'
39951 , p_gain_or_loss_flag => 'N'
39952 , p_gl_transfer_mode_code => 'S'
39953 , p_acct_entry_type_code => 'A'
39954 , p_switch_side_flag => 'N'
39955 , p_merge_duplicate_code => 'N'
39956 );
39957 --
39958 l_acc_rev_natural_side_code := 'D'; -- 4262811
39959 --
39960 --
39961 -- set accounting line type info
39962 --
39963 xla_ae_lines_pkg.SetAcctLineType
39964 (p_component_type => l_component_type
39965 ,p_event_type_code => l_event_type_code
39966 ,p_line_definition_owner_code => l_line_definition_owner_code
39967 ,p_line_definition_code => l_line_definition_code
39968 ,p_accounting_line_code => l_component_code
39969 ,p_accounting_line_type_code => l_component_type_code
39970 ,p_accounting_line_appl_id => l_component_appl_id
39971 ,p_amb_context_code => l_amb_context_code
39972 ,p_entity_code => l_entity_code
39973 ,p_event_class_code => l_event_class_code);
39974 --
39975 -- set accounting class
39976 --
39977 xla_ae_lines_pkg.SetAcctClass(
39978 p_accounting_class_code => 'PURCHASE_ORDER'
39979 , p_ae_header_id => l_ae_header_id
39980 );
39981
39982 --
39983 -- set rounding class
39984 --
39985 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39986 'PURCHASE_ORDER';
39987
39988 --
39989 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39990 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39991 --
39992 -- bulk performance
39993 --
39994 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39995
39996 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39997 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39998
39999 -- 4955764
40000 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40001 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40002
40003 -- 4458381 Public Sector Enh
40004
40005 --
40006 -- set accounting attributes for the line type
40007 --
40008 l_entered_amt_idx := 23;
40009 l_accted_amt_idx := 25;
40010 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40011 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40012 l_rec_acct_attrs.array_char_value(1) := p_source_15;
40013 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
40014 l_rec_acct_attrs.array_num_value(2) :=
40015 xla_ae_sources_pkg.GetSystemSourceNum(
40016 p_source_code => 'XLA_EVENT_APPL_ID'
40017 , p_source_type_code => 'Y'
40018 , p_source_application_id => 602
40019 );
40020 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
40021 l_rec_acct_attrs.array_char_value(3) := p_source_17;
40022 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
40023 l_rec_acct_attrs.array_char_value(4) :=
40024 xla_ae_sources_pkg.GetSystemSourceChar(
40025 p_source_code => 'XLA_ENTITY_CODE'
40026 , p_source_type_code => 'Y'
40027 , p_source_application_id => 602
40028 );
40029 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
40030 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
40031 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
40032 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
40033 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
40034 l_rec_acct_attrs.array_num_value(7) := p_source_21;
40035 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40036 l_rec_acct_attrs.array_char_value(8) := p_source_22;
40037 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
40038 l_rec_acct_attrs.array_char_value(9) := p_source_23;
40039 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
40040 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
40041 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40042 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
40043 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
40044 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
40045 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
40046 l_rec_acct_attrs.array_char_value(13) := p_source_17;
40047 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
40048 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
40049 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
40050 l_rec_acct_attrs.array_num_value(15) := p_source_26;
40051 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
40052 l_rec_acct_attrs.array_char_value(16) := p_source_27;
40056 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
40053 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
40054 l_rec_acct_attrs.array_num_value(17) := p_source_28;
40055 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
40057 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
40058 l_rec_acct_attrs.array_num_value(19) := p_source_26;
40059 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
40060 l_rec_acct_attrs.array_char_value(20) := p_source_27;
40061 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
40062 l_rec_acct_attrs.array_num_value(21) := p_source_28;
40063 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
40064 l_rec_acct_attrs.array_char_value(22) := p_source_29;
40065 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
40066 l_rec_acct_attrs.array_num_value(23) := p_source_26;
40067 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
40068 l_rec_acct_attrs.array_char_value(24) := p_source_27;
40069 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
40070 l_rec_acct_attrs.array_num_value(25) := p_source_28;
40071 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
40072 l_rec_acct_attrs.array_char_value(26) := p_source_31;
40073 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
40074 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
40075 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
40076 l_rec_acct_attrs.array_char_value(28) := p_source_22;
40077 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
40078 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
40079 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
40080 l_rec_acct_attrs.array_num_value(30) := p_source_32;
40081 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
40082 l_rec_acct_attrs.array_num_value(31) := p_source_32;
40083
40084 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40085 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40086
40087 ---------------------------------------------------------------------------------------------------------------
40088 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40089 ---------------------------------------------------------------------------------------------------------------
40090 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40091
40092 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40093 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40094
40095 IF xla_accounting_cache_pkg.GetValueChar
40096 (p_source_code => 'LEDGER_CATEGORY_CODE'
40097 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40098 AND l_bflow_method_code = 'PRIOR_ENTRY'
40099 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40100 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40101 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40102 )
40103 THEN
40104 xla_ae_lines_pkg.BflowUpgEntry
40105 (p_business_method_code => l_bflow_method_code
40106 ,p_business_class_code => l_bflow_class_code
40107 ,p_balance_type => l_balance_type_code);
40108 ELSE
40109 NULL;
40110 XLA_AE_LINES_PKG.business_flow_validation(
40111 p_business_method_code => l_bflow_method_code
40112 ,p_business_class_code => l_bflow_class_code
40113 ,p_inherit_description_flag => l_inherit_desc_flag);
40114 END IF;
40115
40116 --
40117 -- call analytical criteria
40118 --
40119 -- Inherited Analytical Criteria for business flow method of Prior Entry.
40120 --
40121 -- call description
40122 --
40123 -- No description or it is inherited.
40124 --
40125 -- call ADRs
40126 -- Bug 4922099
40127 --
40128 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40129 (NVL(l_actual_upg_option, 'N') = 'O') OR
40130 (NVL(l_enc_upg_option, 'N') = 'O')
40131 )
40132 THEN
40133 NULL;
40134 --
40135 --
40136
40137 l_ccid := AcctDerRule_9(
40138 p_application_id => p_application_id
40139 , p_ae_header_id => l_ae_header_id
40140 , p_source_9 => p_source_9
40141 , x_transaction_coa_id => l_adr_transaction_coa_id
40142 , x_accounting_coa_id => l_adr_accounting_coa_id
40143 , x_value_type_code => l_adr_value_type_code
40144 , p_side => 'NA'
40145 );
40146
40147 xla_ae_lines_pkg.set_ccid(
40148 p_code_combination_id => l_ccid
40149 , p_value_type_code => l_adr_value_type_code
40150 , p_transaction_coa_id => l_adr_transaction_coa_id
40151 , p_accounting_coa_id => l_adr_accounting_coa_id
40152 , p_adr_code => 'FV_ACCOUNT_RULE'
40153 , p_adr_type_code => 'S'
40154 , p_component_type => l_component_type
40155 , p_component_code => l_component_code
40156 , p_component_type_code => l_component_type_code
40157 , p_component_appl_id => l_component_appl_id
40158 , p_amb_context_code => l_amb_context_code
40159 , p_side => 'NA'
40160 );
40161
40162
40166 , p_source_7 => p_source_7
40163 l_segment := AcctDerRule_5(
40164 p_application_id => p_application_id
40165 , p_ae_header_id => l_ae_header_id
40167 , p_source_8 => p_source_8
40168 , x_transaction_coa_id => l_adr_transaction_coa_id
40169 , x_accounting_coa_id => l_adr_accounting_coa_id
40170 , x_flexfield_segment_code => l_adr_flexfield_segment_code
40171 , x_flex_value_set_id => l_adr_flex_value_set_id
40172 , x_value_type_code => l_adr_value_type_code
40173 , x_value_combination_id => l_adr_value_combination_id
40174 , x_value_segment_code => l_adr_value_segment_code
40175 , p_side => 'NA'
40176 , p_override_seg_flag => 'Y'
40177 );
40178
40179 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
40180
40181 xla_ae_lines_pkg.set_segment(
40182 p_to_segment_code => 'GL_ACCOUNT'
40183 , p_segment_value => l_segment
40184 , p_from_segment_code => l_adr_value_segment_code
40185 , p_from_combination_id => l_adr_value_combination_id
40186 , p_value_type_code => l_adr_value_type_code
40187 , p_transaction_coa_id => l_adr_transaction_coa_id
40188 , p_accounting_coa_id => l_adr_accounting_coa_id
40189 , p_flexfield_segment_code => l_adr_flexfield_segment_code
40190 , p_flex_value_set_id => l_adr_flex_value_set_id
40191 , p_adr_code => 'FV_46X002'
40192 , p_adr_type_code => 'S'
40193 , p_component_type => l_component_type
40194 , p_component_code => l_component_code
40195 , p_component_type_code => l_component_type_code
40196 , p_component_appl_id => l_component_appl_id
40197 , p_amb_context_code => l_amb_context_code
40198 , p_entity_code => 'RELEASE'
40199 , p_event_class_code => 'RELEASE'
40200 , p_side => 'NA'
40201 );
40202
40203 END IF;
40204
40205 --
40206 --
40207 END IF;
40208 --
40209 -- Bug 4922099
40210 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40211 (NVL(l_enc_upg_option, 'N') = 'O')
40212 ) AND
40213 (l_bflow_method_code = 'PRIOR_ENTRY')
40214 )
40215 THEN
40216 IF
40217 --
40218 1 = 2
40219 --
40220 THEN
40221 xla_accounting_err_pkg.build_message
40222 (p_appli_s_name => 'XLA'
40223 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40224 ,p_token_1 => 'LINE_NUMBER'
40225 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40226 ,p_token_2 => 'LINE_TYPE_NAME'
40227 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40228 l_component_type
40229 ,l_component_code
40230 ,l_component_type_code
40231 ,l_component_appl_id
40232 ,l_amb_context_code
40233 ,l_entity_code
40234 ,l_event_class_code
40235 )
40236 ,p_token_3 => 'OWNER'
40237 ,p_value_3 => xla_lookups_pkg.get_meaning(
40238 p_lookup_type => 'XLA_OWNER_TYPE'
40239 ,p_lookup_code => l_component_type_code
40240 )
40241 ,p_token_4 => 'PRODUCT_NAME'
40242 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40243 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40244 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40245 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40246 ,p_ae_header_id => NULL
40247 );
40248
40249 IF (C_LEVEL_ERROR>= g_log_level) THEN
40250 trace
40251 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40252 ,p_level => C_LEVEL_ERROR
40253 ,p_module => l_log_module);
40254 END IF;
40255 END IF;
40256 END IF;
40257 --
40258 --
40259 ------------------------------------------------------------------------------------------------
40260 -- 4219869 Business Flow
40261 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40265
40262 -- Prior Entry. Currently, the following code is always generated.
40263 ------------------------------------------------------------------------------------------------
40264 -- No ValidateCurrentLine for business flow method of Prior Entry
40266 ------------------------------------------------------------------------------------
40267 -- 4219869 Business Flow
40268 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40269 ------------------------------------------------------------------------------------
40270 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40271
40272 ----------------------------------------------------------------------------------
40273 -- 4219869 Business Flow
40274 -- Update journal entry status -- Need to generate this within IF <condition>
40275 ----------------------------------------------------------------------------------
40276 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40277 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40278 ,p_balance_type_code => l_balance_type_code
40279 );
40280
40281 -------------------------------------------------------------------------------------------
40282 -- 4262811 - Generate the Accrual Reversal lines
40283 -------------------------------------------------------------------------------------------
40284 BEGIN
40285 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40286 (g_array_event(p_event_id).array_value_num('header_index'));
40287 IF l_acc_rev_flag IS NULL THEN
40288 l_acc_rev_flag := 'N';
40289 END IF;
40290 EXCEPTION
40291 WHEN OTHERS THEN
40292 l_acc_rev_flag := 'N';
40293 END;
40294 --
40295 IF (l_acc_rev_flag = 'Y') THEN
40296
40297 -- 4645092 ------------------------------------------------------------------------------
40298 -- To allow MPA report to determine if it should generate report process
40299 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40300 ------------------------------------------------------------------------------------------
40301
40302 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40303 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40304
40305 --
40306 -- Update the line information that should be overwritten
40307 --
40308 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40309 p_header_num => 1);
40310 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40311
40312 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40313
40314 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40315 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40316 END IF;
40317
40318 --
40319 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40320 --
40321 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40322 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40323 ELSE
40324 ---------------------------------------------------------------------------------------------------
40325 -- 4262811a Switch Sign
40326 ---------------------------------------------------------------------------------------------------
40327 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40328 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40329 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40330 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40331 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40332 -- 5132302
40333 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40334 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40335
40336 END IF;
40337
40338 -- 4955764
40339 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40340 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40341
40342
40343 XLA_AE_LINES_PKG.ValidateCurrentLine;
40344 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40345
40346 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40347 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40348 ,p_balance_type_code => l_balance_type_code);
40349
40350 END IF;
40351
40352 -----------------------------------------------------------------------------------------
40353 -- 4262811 Multiperiod Accounting
40354 -----------------------------------------------------------------------------------------
40355 -- No MPA option is assigned.
40356
40357
40358 END IF;
40359 END IF;
40360 --
40361
40362 --
40363 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40364 trace
40365 (p_msg => 'END of AcctLineType_74'
40366 ,p_level => C_LEVEL_PROCEDURE
40367 ,p_module => l_log_module);
40368 END IF;
40369 --
40370 EXCEPTION
40371 WHEN xla_exceptions_pkg.application_exception THEN
40372 RAISE;
40373 WHEN OTHERS THEN
40374 xla_exceptions_pkg.raise_message
40375 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_74');
40376 END AcctLineType_74;
40377 --
40378
40379 ---------------------------------------
40380 --
40381 -- PRIVATE FUNCTION
40382 -- AcctLineType_75
40383 --
40384 ---------------------------------------
40385 PROCEDURE AcctLineType_75 (
40386 p_application_id IN NUMBER
40387 ,p_event_id IN NUMBER
40388 ,p_calculate_acctd_flag IN VARCHAR2
40389 ,p_calculate_g_l_flag IN VARCHAR2
40390 ,p_actual_flag IN OUT VARCHAR2
40391 ,p_balance_type_code OUT VARCHAR2
40392 ,p_gain_or_loss_ref OUT VARCHAR2
40393
40394 --Budget Account
40395 , p_source_9 IN NUMBER
40396 --Main Or Backing Code
40397 , p_source_13 IN VARCHAR2
40398 --Accounting Reversal Flag
40399 , p_source_15 IN VARCHAR2
40400 --Distribution Link Type
40401 , p_source_17 IN VARCHAR2
40402 --PO Distribution Identifier
40403 , p_source_19 IN NUMBER
40404 --Applied To Application Identifier
40405 , p_source_21 IN NUMBER
40406 --Applied To Distribution Link Type
40407 , p_source_22 IN VARCHAR2
40408 --Applied To Entity Code
40409 , p_source_23 IN VARCHAR2
40410 --Applied To Distribution Identifier 1
40411 , p_source_24 IN NUMBER
40412 --Applied To Header Identifier 1
40413 , p_source_25 IN NUMBER
40414 --Entered Amount
40415 , p_source_26 IN NUMBER
40416 --Currency Code
40417 , p_source_27 IN VARCHAR2
40418 --Accounted Amount
40419 , p_source_28 IN NUMBER
40420 --PO Encumbrance Upgrade Option
40421 , p_source_29 IN VARCHAR2
40422 --JFMIP Reference
40423 , p_source_31 IN VARCHAR2
40424 --PO Upgrade Encumbrance Type Identifier
40425 , p_source_32 IN NUMBER
40426 --PO Release Identifier
40427 , p_source_41 IN NUMBER
40428 )
40429 IS
40430
40431 l_component_type VARCHAR2(80);
40432 l_component_code VARCHAR2(30);
40433 l_component_type_code VARCHAR2(1);
40434 l_component_appl_id INTEGER;
40435 l_amb_context_code VARCHAR2(30);
40436 l_entity_code VARCHAR2(30);
40437 l_event_class_code VARCHAR2(30);
40438 l_ae_header_id NUMBER;
40439 l_event_type_code VARCHAR2(30);
40440 l_line_definition_code VARCHAR2(30);
40441 l_line_definition_owner_code VARCHAR2(1);
40442 --
40443 -- adr variables
40444 l_segment VARCHAR2(30);
40445 l_ccid NUMBER;
40446 l_adr_transaction_coa_id NUMBER;
40447 l_adr_accounting_coa_id NUMBER;
40448 l_adr_flexfield_segment_code VARCHAR2(30);
40449 l_adr_flex_value_set_id NUMBER;
40450 l_adr_value_type_code VARCHAR2(30);
40451 l_adr_value_combination_id NUMBER;
40452 l_adr_value_segment_code VARCHAR2(30);
40453
40454 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40455 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40456 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40457 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40458
40459 -- 4262811 Variables ------------------------------------------------------------------------------------------
40460 l_entered_amt_idx NUMBER;
40461 l_accted_amt_idx NUMBER;
40462 l_acc_rev_flag VARCHAR2(1);
40463 l_accrual_line_num NUMBER;
40464 l_tmp_amt NUMBER;
40465 l_acc_rev_natural_side_code VARCHAR2(1);
40466
40467 l_num_entries NUMBER;
40468 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40469 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40470 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40471 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40472 l_recog_line_1 NUMBER;
40473 l_recog_line_2 NUMBER;
40474
40475 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40476 l_bflow_applied_to_amt NUMBER; -- 5132302
40477 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40478
40479 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40480
40481 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40482 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40483
40484 ---------------------------------------------------------------------------------------------------------------
40485
40486
40487 --
40488 -- bulk performance
40489 --
40490 l_balance_type_code VARCHAR2(1);
40491 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40492 l_log_module VARCHAR2(240);
40493
40494 --
40495 -- Upgrade strategy
40496 --
40497 l_actual_upg_option VARCHAR2(1);
40498 l_enc_upg_option VARCHAR2(1);
40499
40500 --
40501 BEGIN
40502 --
40503 IF g_log_enabled THEN
40504 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
40505 END IF;
40506 --
40507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40508
40509 trace
40510 (p_msg => 'BEGIN of AcctLineType_75'
40511 ,p_level => C_LEVEL_PROCEDURE
40512 ,p_module => l_log_module);
40513
40514 END IF;
40515 --
40516 l_component_type := 'AMB_JLT';
40517 l_component_code := 'FV_REL_REVERSE_DR';
40518 l_component_type_code := 'S';
40519 l_component_appl_id := 201;
40520 l_amb_context_code := 'DEFAULT';
40521 l_entity_code := 'RELEASE';
40522 l_event_class_code := 'RELEASE';
40523 l_event_type_code := 'RELEASE_ALL';
40524 l_line_definition_owner_code := 'S';
40525 l_line_definition_code := 'FV_RELEASE_ALL';
40526 --
40527 l_balance_type_code := 'A';
40528 l_segment := NULL;
40529 l_ccid := NULL;
40530 l_adr_transaction_coa_id := NULL;
40531 l_adr_accounting_coa_id := NULL;
40532 l_adr_flexfield_segment_code := NULL;
40533 l_adr_flex_value_set_id := NULL;
40534 l_adr_value_type_code := NULL;
40535 l_adr_value_combination_id := NULL;
40536 l_adr_value_segment_code := NULL;
40537
40538 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
40539 l_bflow_class_code := 'FV_PO_CR'; -- 4219869 Business Flow
40540 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
40541 l_budgetary_control_flag := 'Y';
40542
40543 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40544 l_bflow_applied_to_amt := NULL; -- 5132302
40545 l_entered_amt_idx := NULL; -- 4262811
40546 l_accted_amt_idx := NULL; -- 4262811
40547 l_acc_rev_flag := NULL; -- 4262811
40548 l_accrual_line_num := NULL; -- 4262811
40549 l_tmp_amt := NULL; -- 4262811
40550 --
40551
40552 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40553 l_balance_type_code <> 'B' THEN
40554 IF (NVL(
40555 xla_ae_sources_pkg.GetSystemSourceChar(
40556 p_source_code => 'XLA_EVENT_TYPE_CODE'
40557 , p_source_type_code => 'Y'
40558 , p_source_application_id => 602
40559 ),'
40560 ') = 'RELEASE_REJECTED' OR
40561 NVL(
40562 xla_ae_sources_pkg.GetSystemSourceChar(
40563 p_source_code => 'XLA_EVENT_TYPE_CODE'
40564 , p_source_type_code => 'Y'
40565 , p_source_application_id => 602
40566 ),'
40567 ') = 'RELEASE_UNRESERVED' OR
40568 NVL(
40569 xla_ae_sources_pkg.GetSystemSourceChar(
40570 p_source_code => 'XLA_EVENT_TYPE_CODE'
40571 , p_source_type_code => 'Y'
40572 , p_source_application_id => 602
40573 ),'
40574 ') = 'RELEASE_INV_CANCELLED' OR
40575 NVL(
40576 xla_ae_sources_pkg.GetSystemSourceChar(
40577 p_source_code => 'XLA_EVENT_TYPE_CODE'
40578 , p_source_type_code => 'Y'
40579 , p_source_application_id => 602
40580 ),'
40581 ') = 'RELEASE_FINAL_CLOSED') AND
40582 NVL(p_source_13,'
40583 ') = 'M'
40584 THEN
40585
40586 --
40587 XLA_AE_LINES_PKG.SetNewLine;
40588
40589 p_balance_type_code := l_balance_type_code;
40590 -- set the flag so later we will know whether the gain loss line needs to be created
40591
40592 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40593 p_actual_flag :='A';
40594 END IF;
40595
40596 --
40597 -- bulk performance
40598 --
40599 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40600 p_header_num => 0); -- 4262811
40601 --
40602 -- set accounting line options
40603 --
40604 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40605 p_natural_side_code => 'D'
40606 , p_gain_or_loss_flag => 'N'
40607 , p_gl_transfer_mode_code => 'S'
40608 , p_acct_entry_type_code => 'A'
40609 , p_switch_side_flag => 'N'
40610 , p_merge_duplicate_code => 'N'
40611 );
40612 --
40613 l_acc_rev_natural_side_code := 'C'; -- 4262811
40614 --
40615 --
40616 -- set accounting line type info
40617 --
40618 xla_ae_lines_pkg.SetAcctLineType
40619 (p_component_type => l_component_type
40620 ,p_event_type_code => l_event_type_code
40621 ,p_line_definition_owner_code => l_line_definition_owner_code
40622 ,p_line_definition_code => l_line_definition_code
40623 ,p_accounting_line_code => l_component_code
40624 ,p_accounting_line_type_code => l_component_type_code
40625 ,p_accounting_line_appl_id => l_component_appl_id
40626 ,p_amb_context_code => l_amb_context_code
40627 ,p_entity_code => l_entity_code
40628 ,p_event_class_code => l_event_class_code);
40629 --
40630 -- set accounting class
40631 --
40632 xla_ae_lines_pkg.SetAcctClass(
40633 p_accounting_class_code => 'PURCHASE_ORDER'
40634 , p_ae_header_id => l_ae_header_id
40635 );
40636
40637 --
40638 -- set rounding class
40639 --
40640 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40641 'PURCHASE_ORDER';
40642
40643 --
40644 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40645 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40646 --
40647 -- bulk performance
40648 --
40649 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40650
40651 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40652 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40653
40654 -- 4955764
40655 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40659
40656 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40657
40658 -- 4458381 Public Sector Enh
40660 --
40661 -- set accounting attributes for the line type
40662 --
40663 l_entered_amt_idx := 23;
40664 l_accted_amt_idx := 25;
40665 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40666 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40667 l_rec_acct_attrs.array_char_value(1) := p_source_15;
40668 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
40669 l_rec_acct_attrs.array_num_value(2) :=
40670 xla_ae_sources_pkg.GetSystemSourceNum(
40671 p_source_code => 'XLA_EVENT_APPL_ID'
40672 , p_source_type_code => 'Y'
40673 , p_source_application_id => 602
40674 );
40675 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
40676 l_rec_acct_attrs.array_char_value(3) := p_source_17;
40677 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
40678 l_rec_acct_attrs.array_char_value(4) :=
40679 xla_ae_sources_pkg.GetSystemSourceChar(
40680 p_source_code => 'XLA_ENTITY_CODE'
40681 , p_source_type_code => 'Y'
40682 , p_source_application_id => 602
40683 );
40684 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
40685 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
40686 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
40687 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
40688 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
40689 l_rec_acct_attrs.array_num_value(7) := p_source_21;
40690 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40691 l_rec_acct_attrs.array_char_value(8) := p_source_22;
40692 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
40693 l_rec_acct_attrs.array_char_value(9) := p_source_23;
40694 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
40695 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
40696 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40697 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
40698 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
40699 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
40700 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
40701 l_rec_acct_attrs.array_char_value(13) := p_source_17;
40702 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
40703 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
40704 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
40705 l_rec_acct_attrs.array_num_value(15) := p_source_26;
40706 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
40707 l_rec_acct_attrs.array_char_value(16) := p_source_27;
40708 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
40709 l_rec_acct_attrs.array_num_value(17) := p_source_28;
40710 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
40711 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
40712 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
40713 l_rec_acct_attrs.array_num_value(19) := p_source_26;
40714 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
40715 l_rec_acct_attrs.array_char_value(20) := p_source_27;
40716 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
40717 l_rec_acct_attrs.array_num_value(21) := p_source_28;
40718 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
40719 l_rec_acct_attrs.array_char_value(22) := p_source_29;
40720 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
40721 l_rec_acct_attrs.array_num_value(23) := p_source_26;
40722 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
40723 l_rec_acct_attrs.array_char_value(24) := p_source_27;
40724 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
40725 l_rec_acct_attrs.array_num_value(25) := p_source_28;
40726 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
40727 l_rec_acct_attrs.array_char_value(26) := p_source_31;
40728 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
40729 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
40730 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
40731 l_rec_acct_attrs.array_char_value(28) := p_source_22;
40732 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
40733 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_41);
40734 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
40735 l_rec_acct_attrs.array_num_value(30) := p_source_32;
40736 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
40737 l_rec_acct_attrs.array_num_value(31) := p_source_32;
40738
40739 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40740 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40741
40742 ---------------------------------------------------------------------------------------------------------------
40743 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40744 ---------------------------------------------------------------------------------------------------------------
40745 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40746
40747 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40748 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40749
40750 IF xla_accounting_cache_pkg.GetValueChar
40751 (p_source_code => 'LEDGER_CATEGORY_CODE'
40752 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40753 AND l_bflow_method_code = 'PRIOR_ENTRY'
40754 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40755 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40756 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40757 )
40758 THEN
40759 xla_ae_lines_pkg.BflowUpgEntry
40760 (p_business_method_code => l_bflow_method_code
40761 ,p_business_class_code => l_bflow_class_code
40762 ,p_balance_type => l_balance_type_code);
40763 ELSE
40764 NULL;
40765 XLA_AE_LINES_PKG.business_flow_validation(
40766 p_business_method_code => l_bflow_method_code
40767 ,p_business_class_code => l_bflow_class_code
40768 ,p_inherit_description_flag => l_inherit_desc_flag);
40769 END IF;
40770
40771 --
40772 -- call analytical criteria
40773 --
40774 -- Inherited Analytical Criteria for business flow method of Prior Entry.
40775 --
40776 -- call description
40777 --
40778 -- No description or it is inherited.
40779 --
40780 -- call ADRs
40781 -- Bug 4922099
40782 --
40783 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40784 (NVL(l_actual_upg_option, 'N') = 'O') OR
40785 (NVL(l_enc_upg_option, 'N') = 'O')
40786 )
40787 THEN
40788 NULL;
40789 --
40790 --
40791
40792 l_ccid := AcctDerRule_9(
40793 p_application_id => p_application_id
40794 , p_ae_header_id => l_ae_header_id
40795 , p_source_9 => p_source_9
40796 , x_transaction_coa_id => l_adr_transaction_coa_id
40797 , x_accounting_coa_id => l_adr_accounting_coa_id
40798 , x_value_type_code => l_adr_value_type_code
40799 , p_side => 'NA'
40800 );
40801
40802 xla_ae_lines_pkg.set_ccid(
40803 p_code_combination_id => l_ccid
40804 , p_value_type_code => l_adr_value_type_code
40805 , p_transaction_coa_id => l_adr_transaction_coa_id
40806 , p_accounting_coa_id => l_adr_accounting_coa_id
40807 , p_adr_code => 'FV_ACCOUNT_RULE'
40808 , p_adr_type_code => 'S'
40809 , p_component_type => l_component_type
40810 , p_component_code => l_component_code
40811 , p_component_type_code => l_component_type_code
40812 , p_component_appl_id => l_component_appl_id
40813 , p_amb_context_code => l_amb_context_code
40814 , p_side => 'NA'
40815 );
40816
40817
40818 l_segment := AcctDerRule_8(
40819 p_application_id => p_application_id
40820 , p_ae_header_id => l_ae_header_id
40821 , x_transaction_coa_id => l_adr_transaction_coa_id
40822 , x_accounting_coa_id => l_adr_accounting_coa_id
40823 , x_flexfield_segment_code => l_adr_flexfield_segment_code
40824 , x_flex_value_set_id => l_adr_flex_value_set_id
40825 , x_value_type_code => l_adr_value_type_code
40826 , x_value_combination_id => l_adr_value_combination_id
40827 , x_value_segment_code => l_adr_value_segment_code
40828 , p_side => 'NA'
40829 , p_override_seg_flag => 'Y'
40830 );
40831
40832 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
40833
40834 xla_ae_lines_pkg.set_segment(
40835 p_to_segment_code => 'GL_ACCOUNT'
40836 , p_segment_value => l_segment
40837 , p_from_segment_code => l_adr_value_segment_code
40838 , p_from_combination_id => l_adr_value_combination_id
40839 , p_value_type_code => l_adr_value_type_code
40840 , p_transaction_coa_id => l_adr_transaction_coa_id
40841 , p_accounting_coa_id => l_adr_accounting_coa_id
40842 , p_flexfield_segment_code => l_adr_flexfield_segment_code
40843 , p_flex_value_set_id => l_adr_flex_value_set_id
40844 , p_adr_code => 'FV_48X101_PURCHASING'
40845 , p_adr_type_code => 'S'
40846 , p_component_type => l_component_type
40847 , p_component_code => l_component_code
40848 , p_component_type_code => l_component_type_code
40849 , p_component_appl_id => l_component_appl_id
40850 , p_amb_context_code => l_amb_context_code
40851 , p_entity_code => 'RELEASE'
40852 , p_event_class_code => 'RELEASE'
40853 , p_side => 'NA'
40854 );
40855
40856 END IF;
40857
40858 --
40859 --
40860 END IF;
40861 --
40862 -- Bug 4922099
40863 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40864 (NVL(l_enc_upg_option, 'N') = 'O')
40865 ) AND
40866 (l_bflow_method_code = 'PRIOR_ENTRY')
40867 )
40868 THEN
40869 IF
40870 --
40871 1 = 2
40872 --
40873 THEN
40874 xla_accounting_err_pkg.build_message
40875 (p_appli_s_name => 'XLA'
40876 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40877 ,p_token_1 => 'LINE_NUMBER'
40878 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40879 ,p_token_2 => 'LINE_TYPE_NAME'
40880 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40881 l_component_type
40882 ,l_component_code
40883 ,l_component_type_code
40884 ,l_component_appl_id
40885 ,l_amb_context_code
40886 ,l_entity_code
40887 ,l_event_class_code
40888 )
40889 ,p_token_3 => 'OWNER'
40890 ,p_value_3 => xla_lookups_pkg.get_meaning(
40891 p_lookup_type => 'XLA_OWNER_TYPE'
40892 ,p_lookup_code => l_component_type_code
40893 )
40894 ,p_token_4 => 'PRODUCT_NAME'
40895 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40896 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40897 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40898 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40899 ,p_ae_header_id => NULL
40900 );
40901
40902 IF (C_LEVEL_ERROR>= g_log_level) THEN
40903 trace
40904 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40905 ,p_level => C_LEVEL_ERROR
40906 ,p_module => l_log_module);
40907 END IF;
40908 END IF;
40909 END IF;
40910 --
40911 --
40912 ------------------------------------------------------------------------------------------------
40913 -- 4219869 Business Flow
40914 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40915 -- Prior Entry. Currently, the following code is always generated.
40916 ------------------------------------------------------------------------------------------------
40917 -- No ValidateCurrentLine for business flow method of Prior Entry
40918
40919 ------------------------------------------------------------------------------------
40920 -- 4219869 Business Flow
40921 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40922 ------------------------------------------------------------------------------------
40923 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40924
40925 ----------------------------------------------------------------------------------
40926 -- 4219869 Business Flow
40927 -- Update journal entry status -- Need to generate this within IF <condition>
40928 ----------------------------------------------------------------------------------
40929 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40930 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40931 ,p_balance_type_code => l_balance_type_code
40932 );
40933
40934 -------------------------------------------------------------------------------------------
40935 -- 4262811 - Generate the Accrual Reversal lines
40936 -------------------------------------------------------------------------------------------
40937 BEGIN
40938 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40939 (g_array_event(p_event_id).array_value_num('header_index'));
40940 IF l_acc_rev_flag IS NULL THEN
40941 l_acc_rev_flag := 'N';
40942 END IF;
40943 EXCEPTION
40944 WHEN OTHERS THEN
40945 l_acc_rev_flag := 'N';
40946 END;
40947 --
40948 IF (l_acc_rev_flag = 'Y') THEN
40949
40950 -- 4645092 ------------------------------------------------------------------------------
40951 -- To allow MPA report to determine if it should generate report process
40952 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40953 ------------------------------------------------------------------------------------------
40954
40955 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40956 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40957
40958 --
40959 -- Update the line information that should be overwritten
40960 --
40961 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40962 p_header_num => 1);
40963 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40964
40965 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40966
40967 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40968 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40969 END IF;
40970
40971 --
40972 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40973 --
40974 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40975 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40976 ELSE
40977 ---------------------------------------------------------------------------------------------------
40978 -- 4262811a Switch Sign
40979 ---------------------------------------------------------------------------------------------------
40980 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40981 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40982 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40983 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40984 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40985 -- 5132302
40986 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40987 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40988
40989 END IF;
40990
40991 -- 4955764
40992 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40993 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40994
40995
40996 XLA_AE_LINES_PKG.ValidateCurrentLine;
40997 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40998
40999 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41000 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41001 ,p_balance_type_code => l_balance_type_code);
41002
41003 END IF;
41004
41008 -- No MPA option is assigned.
41005 -----------------------------------------------------------------------------------------
41006 -- 4262811 Multiperiod Accounting
41007 -----------------------------------------------------------------------------------------
41009
41010
41011 END IF;
41012 END IF;
41013 --
41014
41015 --
41016 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41017 trace
41018 (p_msg => 'END of AcctLineType_75'
41019 ,p_level => C_LEVEL_PROCEDURE
41020 ,p_module => l_log_module);
41021 END IF;
41022 --
41023 EXCEPTION
41024 WHEN xla_exceptions_pkg.application_exception THEN
41025 RAISE;
41026 WHEN OTHERS THEN
41027 xla_exceptions_pkg.raise_message
41028 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_75');
41029 END AcctLineType_75;
41030 --
41031
41032 ---------------------------------------
41033 --
41034 -- PRIVATE FUNCTION
41035 -- AcctLineType_76
41036 --
41037 ---------------------------------------
41038 PROCEDURE AcctLineType_76 (
41039 p_application_id IN NUMBER
41040 ,p_event_id IN NUMBER
41041 ,p_calculate_acctd_flag IN VARCHAR2
41042 ,p_calculate_g_l_flag IN VARCHAR2
41043 ,p_actual_flag IN OUT VARCHAR2
41044 ,p_balance_type_code OUT VARCHAR2
41045 ,p_gain_or_loss_ref OUT VARCHAR2
41046
41047 --Journal entry Line Description
41048 , p_source_3 IN VARCHAR2
41049 --Federal Fund Category
41050 , p_source_7 IN VARCHAR2
41051 --Federal Fund Expired Status
41052 , p_source_8 IN VARCHAR2
41053 --Budget Account
41054 , p_source_9 IN NUMBER
41055 --Main Or Backing Code
41056 , p_source_13 IN VARCHAR2
41057 --Accounting Reversal Flag
41058 , p_source_15 IN VARCHAR2
41059 --Distribution Link Type
41060 , p_source_17 IN VARCHAR2
41061 --PO Distribution Identifier
41062 , p_source_19 IN NUMBER
41063 --PO Header Identifier
41064 , p_source_20 IN NUMBER
41065 --Applied To Application Identifier
41066 , p_source_21 IN NUMBER
41067 --Applied To Distribution Link Type
41068 , p_source_22 IN VARCHAR2
41069 --Applied To Entity Code
41070 , p_source_23 IN VARCHAR2
41071 --Applied To Distribution Identifier 1
41072 , p_source_24 IN NUMBER
41073 --Applied To Header Identifier 1
41074 , p_source_25 IN NUMBER
41075 --Entered Amount
41076 , p_source_26 IN NUMBER
41077 --Currency Code
41078 , p_source_27 IN VARCHAR2
41079 --Accounted Amount
41080 , p_source_28 IN NUMBER
41081 --PO Encumbrance Upgrade Option
41082 , p_source_29 IN VARCHAR2
41083 --PO Upgrade Encumbrance Type Identifier
41084 , p_source_32 IN NUMBER
41085 --Currency Conversion Date
41086 , p_source_35 IN DATE
41087 --Currency Conversion Rate
41088 , p_source_36 IN NUMBER
41089 --Currency Conversion Type
41090 , p_source_37 IN VARCHAR2
41091 )
41092 IS
41093
41094 l_component_type VARCHAR2(80);
41095 l_component_code VARCHAR2(30);
41096 l_component_type_code VARCHAR2(1);
41097 l_component_appl_id INTEGER;
41098 l_amb_context_code VARCHAR2(30);
41099 l_entity_code VARCHAR2(30);
41100 l_event_class_code VARCHAR2(30);
41101 l_ae_header_id NUMBER;
41102 l_event_type_code VARCHAR2(30);
41103 l_line_definition_code VARCHAR2(30);
41104 l_line_definition_owner_code VARCHAR2(1);
41105 --
41106 -- adr variables
41107 l_segment VARCHAR2(30);
41108 l_ccid NUMBER;
41109 l_adr_transaction_coa_id NUMBER;
41110 l_adr_accounting_coa_id NUMBER;
41111 l_adr_flexfield_segment_code VARCHAR2(30);
41112 l_adr_flex_value_set_id NUMBER;
41113 l_adr_value_type_code VARCHAR2(30);
41114 l_adr_value_combination_id NUMBER;
41115 l_adr_value_segment_code VARCHAR2(30);
41116
41117 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41118 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41119 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41120 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41121
41122 -- 4262811 Variables ------------------------------------------------------------------------------------------
41123 l_entered_amt_idx NUMBER;
41124 l_accted_amt_idx NUMBER;
41125 l_acc_rev_flag VARCHAR2(1);
41126 l_accrual_line_num NUMBER;
41127 l_tmp_amt NUMBER;
41128 l_acc_rev_natural_side_code VARCHAR2(1);
41129
41130 l_num_entries NUMBER;
41131 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41132 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41133 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41134 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41135 l_recog_line_1 NUMBER;
41136 l_recog_line_2 NUMBER;
41137
41138 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41139 l_bflow_applied_to_amt NUMBER; -- 5132302
41140 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41141
41142 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41143
41144 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41148
41145 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41146
41147 ---------------------------------------------------------------------------------------------------------------
41149
41150 --
41151 -- bulk performance
41152 --
41153 l_balance_type_code VARCHAR2(1);
41154 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41155 l_log_module VARCHAR2(240);
41156
41157 --
41158 -- Upgrade strategy
41159 --
41160 l_actual_upg_option VARCHAR2(1);
41161 l_enc_upg_option VARCHAR2(1);
41162
41163 --
41164 BEGIN
41165 --
41166 IF g_log_enabled THEN
41167 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
41168 END IF;
41169 --
41170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41171
41172 trace
41173 (p_msg => 'BEGIN of AcctLineType_76'
41174 ,p_level => C_LEVEL_PROCEDURE
41175 ,p_module => l_log_module);
41176
41177 END IF;
41178 --
41179 l_component_type := 'AMB_JLT';
41180 l_component_code := 'FV_REOPEN_FINAL_MATCHED_PO_CR';
41181 l_component_type_code := 'S';
41182 l_component_appl_id := 201;
41183 l_amb_context_code := 'DEFAULT';
41184 l_entity_code := 'PURCHASE_ORDER';
41185 l_event_class_code := 'PO_PA';
41186 l_event_type_code := 'PO_PA_ALL';
41187 l_line_definition_owner_code := 'S';
41188 l_line_definition_code := 'FV_PO_ALL';
41189 --
41190 l_balance_type_code := 'A';
41191 l_segment := NULL;
41192 l_ccid := NULL;
41193 l_adr_transaction_coa_id := NULL;
41194 l_adr_accounting_coa_id := NULL;
41195 l_adr_flexfield_segment_code := NULL;
41196 l_adr_flex_value_set_id := NULL;
41197 l_adr_value_type_code := NULL;
41198 l_adr_value_combination_id := NULL;
41199 l_adr_value_segment_code := NULL;
41200
41201 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41202 l_bflow_class_code := ''; -- 4219869 Business Flow
41203 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41204 l_budgetary_control_flag := 'Y';
41205
41206 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41207 l_bflow_applied_to_amt := NULL; -- 5132302
41208 l_entered_amt_idx := NULL; -- 4262811
41209 l_accted_amt_idx := NULL; -- 4262811
41210 l_acc_rev_flag := NULL; -- 4262811
41211 l_accrual_line_num := NULL; -- 4262811
41212 l_tmp_amt := NULL; -- 4262811
41213 --
41214
41215 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41216 l_balance_type_code <> 'B' THEN
41217 IF NVL(
41218 xla_ae_sources_pkg.GetSystemSourceChar(
41219 p_source_code => 'XLA_EVENT_TYPE_CODE'
41220 , p_source_type_code => 'Y'
41221 , p_source_application_id => 602
41222 ),'
41223 ') = 'PO_REOPEN_FINAL_MATCH' AND
41224 NVL(p_source_13,'
41225 ') = 'M'
41226 THEN
41227
41228 --
41229 XLA_AE_LINES_PKG.SetNewLine;
41230
41231 p_balance_type_code := l_balance_type_code;
41232 -- set the flag so later we will know whether the gain loss line needs to be created
41233
41234 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41235 p_actual_flag :='A';
41236 END IF;
41237
41238 --
41239 -- bulk performance
41240 --
41241 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41242 p_header_num => 0); -- 4262811
41243 --
41244 -- set accounting line options
41245 --
41246 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41247 p_natural_side_code => 'C'
41248 , p_gain_or_loss_flag => 'N'
41249 , p_gl_transfer_mode_code => 'S'
41250 , p_acct_entry_type_code => 'A'
41251 , p_switch_side_flag => 'N'
41252 , p_merge_duplicate_code => 'N'
41253 );
41254 --
41255 l_acc_rev_natural_side_code := 'D'; -- 4262811
41256 --
41257 --
41258 -- set accounting line type info
41259 --
41260 xla_ae_lines_pkg.SetAcctLineType
41261 (p_component_type => l_component_type
41262 ,p_event_type_code => l_event_type_code
41263 ,p_line_definition_owner_code => l_line_definition_owner_code
41264 ,p_line_definition_code => l_line_definition_code
41265 ,p_accounting_line_code => l_component_code
41266 ,p_accounting_line_type_code => l_component_type_code
41267 ,p_accounting_line_appl_id => l_component_appl_id
41268 ,p_amb_context_code => l_amb_context_code
41269 ,p_entity_code => l_entity_code
41270 ,p_event_class_code => l_event_class_code);
41271 --
41272 -- set accounting class
41273 --
41274 xla_ae_lines_pkg.SetAcctClass(
41275 p_accounting_class_code => 'PURCHASE_ORDER'
41276 , p_ae_header_id => l_ae_header_id
41277 );
41278
41279 --
41280 -- set rounding class
41281 --
41282 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41283 'PURCHASE_ORDER';
41284
41285 --
41286 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41290 --
41287 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41288 --
41289 -- bulk performance
41291 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41292
41293 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41294 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41295
41296 -- 4955764
41297 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41298 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41299
41300 -- 4458381 Public Sector Enh
41301
41302 --
41303 -- set accounting attributes for the line type
41304 --
41305 l_entered_amt_idx := 23;
41306 l_accted_amt_idx := 28;
41307 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41308 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41309 l_rec_acct_attrs.array_char_value(1) := p_source_15;
41310 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
41311 l_rec_acct_attrs.array_num_value(2) :=
41312 xla_ae_sources_pkg.GetSystemSourceNum(
41313 p_source_code => 'XLA_EVENT_APPL_ID'
41314 , p_source_type_code => 'Y'
41315 , p_source_application_id => 602
41316 );
41317 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
41318 l_rec_acct_attrs.array_char_value(3) := p_source_17;
41319 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
41320 l_rec_acct_attrs.array_char_value(4) :=
41321 xla_ae_sources_pkg.GetSystemSourceChar(
41322 p_source_code => 'XLA_ENTITY_CODE'
41323 , p_source_type_code => 'Y'
41324 , p_source_application_id => 602
41325 );
41326 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
41327 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
41328 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
41329 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
41330 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
41331 l_rec_acct_attrs.array_num_value(7) := p_source_21;
41332 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41333 l_rec_acct_attrs.array_char_value(8) := p_source_22;
41334 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
41335 l_rec_acct_attrs.array_char_value(9) := p_source_23;
41336 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
41337 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
41338 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41339 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
41340 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
41341 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
41342 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
41343 l_rec_acct_attrs.array_char_value(13) := p_source_17;
41344 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
41345 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
41346 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
41347 l_rec_acct_attrs.array_num_value(15) := p_source_26;
41348 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
41349 l_rec_acct_attrs.array_char_value(16) := p_source_27;
41350 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
41351 l_rec_acct_attrs.array_num_value(17) := p_source_28;
41352 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
41353 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
41354 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
41355 l_rec_acct_attrs.array_num_value(19) := p_source_26;
41356 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
41357 l_rec_acct_attrs.array_char_value(20) := p_source_27;
41358 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
41359 l_rec_acct_attrs.array_num_value(21) := p_source_28;
41360 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
41361 l_rec_acct_attrs.array_char_value(22) := p_source_29;
41362 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
41363 l_rec_acct_attrs.array_num_value(23) := p_source_26;
41364 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
41365 l_rec_acct_attrs.array_char_value(24) := p_source_27;
41366 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
41367 l_rec_acct_attrs.array_date_value(25) := p_source_35;
41368 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
41369 l_rec_acct_attrs.array_num_value(26) := p_source_36;
41370 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
41371 l_rec_acct_attrs.array_char_value(27) := p_source_37;
41372 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
41373 l_rec_acct_attrs.array_num_value(28) := p_source_28;
41374 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
41375 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
41376 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
41377 l_rec_acct_attrs.array_char_value(30) := p_source_22;
41378 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
41379 l_rec_acct_attrs.array_num_value(31) := p_source_32;
41380 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
41381 l_rec_acct_attrs.array_num_value(32) := p_source_32;
41382
41383 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41384 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41385
41389 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41386 ---------------------------------------------------------------------------------------------------------------
41387 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41388 ---------------------------------------------------------------------------------------------------------------
41390
41391 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41392 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41393
41394 IF xla_accounting_cache_pkg.GetValueChar
41395 (p_source_code => 'LEDGER_CATEGORY_CODE'
41396 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41397 AND l_bflow_method_code = 'PRIOR_ENTRY'
41398 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41399 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41400 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41401 )
41402 THEN
41403 xla_ae_lines_pkg.BflowUpgEntry
41404 (p_business_method_code => l_bflow_method_code
41405 ,p_business_class_code => l_bflow_class_code
41406 ,p_balance_type => l_balance_type_code);
41407 ELSE
41408 NULL;
41409 -- No business flow processing for business flow method of NONE.
41410 END IF;
41411
41412 --
41413 -- call analytical criteria
41414 --
41415
41416 --
41417 -- call description
41418 --
41419
41420 xla_ae_lines_pkg.SetLineDescription(
41421 p_ae_header_id => l_ae_header_id
41422 ,p_description => Description_2 (
41423 p_application_id => p_application_id
41424 , p_ae_header_id => l_ae_header_id
41425 , p_source_3 => p_source_3
41426 )
41427 );
41428
41429
41430 --
41431 -- call ADRs
41432 -- Bug 4922099
41433 --
41434 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41435 (NVL(l_actual_upg_option, 'N') = 'O') OR
41436 (NVL(l_enc_upg_option, 'N') = 'O')
41437 )
41438 THEN
41439 NULL;
41440 --
41441 --
41442
41443 l_ccid := AcctDerRule_9(
41444 p_application_id => p_application_id
41445 , p_ae_header_id => l_ae_header_id
41446 , p_source_9 => p_source_9
41447 , x_transaction_coa_id => l_adr_transaction_coa_id
41448 , x_accounting_coa_id => l_adr_accounting_coa_id
41449 , x_value_type_code => l_adr_value_type_code
41450 , p_side => 'NA'
41451 );
41452
41453 xla_ae_lines_pkg.set_ccid(
41454 p_code_combination_id => l_ccid
41455 , p_value_type_code => l_adr_value_type_code
41456 , p_transaction_coa_id => l_adr_transaction_coa_id
41457 , p_accounting_coa_id => l_adr_accounting_coa_id
41458 , p_adr_code => 'FV_ACCOUNT_RULE'
41459 , p_adr_type_code => 'S'
41460 , p_component_type => l_component_type
41461 , p_component_code => l_component_code
41462 , p_component_type_code => l_component_type_code
41463 , p_component_appl_id => l_component_appl_id
41464 , p_amb_context_code => l_amb_context_code
41465 , p_side => 'NA'
41466 );
41467
41468
41469 l_segment := AcctDerRule_5(
41470 p_application_id => p_application_id
41471 , p_ae_header_id => l_ae_header_id
41472 , p_source_7 => p_source_7
41473 , p_source_8 => p_source_8
41474 , x_transaction_coa_id => l_adr_transaction_coa_id
41475 , x_accounting_coa_id => l_adr_accounting_coa_id
41476 , x_flexfield_segment_code => l_adr_flexfield_segment_code
41477 , x_flex_value_set_id => l_adr_flex_value_set_id
41478 , x_value_type_code => l_adr_value_type_code
41479 , x_value_combination_id => l_adr_value_combination_id
41480 , x_value_segment_code => l_adr_value_segment_code
41481 , p_side => 'NA'
41482 , p_override_seg_flag => 'Y'
41483 );
41484
41485 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
41486
41487 xla_ae_lines_pkg.set_segment(
41488 p_to_segment_code => 'GL_ACCOUNT'
41489 , p_segment_value => l_segment
41490 , p_from_segment_code => l_adr_value_segment_code
41491 , p_from_combination_id => l_adr_value_combination_id
41492 , p_value_type_code => l_adr_value_type_code
41493 , p_transaction_coa_id => l_adr_transaction_coa_id
41494 , p_accounting_coa_id => l_adr_accounting_coa_id
41495 , p_flexfield_segment_code => l_adr_flexfield_segment_code
41496 , p_flex_value_set_id => l_adr_flex_value_set_id
41497 , p_adr_code => 'FV_46X002'
41498 , p_adr_type_code => 'S'
41499 , p_component_type => l_component_type
41500 , p_component_code => l_component_code
41501 , p_component_type_code => l_component_type_code
41502 , p_component_appl_id => l_component_appl_id
41503 , p_amb_context_code => l_amb_context_code
41504 , p_entity_code => 'PURCHASE_ORDER'
41505 , p_event_class_code => 'PO_PA'
41506 , p_side => 'NA'
41507 );
41508
41509 END IF;
41510
41511 --
41512 --
41513 END IF;
41514 --
41515 -- Bug 4922099
41516 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41517 (NVL(l_enc_upg_option, 'N') = 'O')
41518 ) AND
41519 (l_bflow_method_code = 'PRIOR_ENTRY')
41520 )
41521 THEN
41522 IF
41523 --
41524 1 = 2
41525 --
41526 THEN
41527 xla_accounting_err_pkg.build_message
41528 (p_appli_s_name => 'XLA'
41529 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41530 ,p_token_1 => 'LINE_NUMBER'
41531 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41532 ,p_token_2 => 'LINE_TYPE_NAME'
41533 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41534 l_component_type
41535 ,l_component_code
41536 ,l_component_type_code
41537 ,l_component_appl_id
41538 ,l_amb_context_code
41539 ,l_entity_code
41540 ,l_event_class_code
41541 )
41542 ,p_token_3 => 'OWNER'
41543 ,p_value_3 => xla_lookups_pkg.get_meaning(
41544 p_lookup_type => 'XLA_OWNER_TYPE'
41548 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41545 ,p_lookup_code => l_component_type_code
41546 )
41547 ,p_token_4 => 'PRODUCT_NAME'
41549 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41550 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41551 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41552 ,p_ae_header_id => NULL
41553 );
41554
41555 IF (C_LEVEL_ERROR>= g_log_level) THEN
41556 trace
41557 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41558 ,p_level => C_LEVEL_ERROR
41559 ,p_module => l_log_module);
41560 END IF;
41561 END IF;
41562 END IF;
41563 --
41564 --
41565 ------------------------------------------------------------------------------------------------
41566 -- 4219869 Business Flow
41567 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41568 -- Prior Entry. Currently, the following code is always generated.
41569 ------------------------------------------------------------------------------------------------
41570 XLA_AE_LINES_PKG.ValidateCurrentLine;
41571
41572 ------------------------------------------------------------------------------------
41573 -- 4219869 Business Flow
41574 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41575 ------------------------------------------------------------------------------------
41576 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41577
41578 ----------------------------------------------------------------------------------
41579 -- 4219869 Business Flow
41580 -- Update journal entry status -- Need to generate this within IF <condition>
41581 ----------------------------------------------------------------------------------
41582 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41583 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41584 ,p_balance_type_code => l_balance_type_code
41585 );
41586
41587 -------------------------------------------------------------------------------------------
41588 -- 4262811 - Generate the Accrual Reversal lines
41589 -------------------------------------------------------------------------------------------
41590 BEGIN
41591 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41592 (g_array_event(p_event_id).array_value_num('header_index'));
41593 IF l_acc_rev_flag IS NULL THEN
41594 l_acc_rev_flag := 'N';
41595 END IF;
41596 EXCEPTION
41597 WHEN OTHERS THEN
41598 l_acc_rev_flag := 'N';
41599 END;
41600 --
41601 IF (l_acc_rev_flag = 'Y') THEN
41602
41603 -- 4645092 ------------------------------------------------------------------------------
41604 -- To allow MPA report to determine if it should generate report process
41605 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41606 ------------------------------------------------------------------------------------------
41607
41608 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41609 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41610
41611 --
41612 -- Update the line information that should be overwritten
41613 --
41614 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41615 p_header_num => 1);
41616 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41617
41618 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41619
41620 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41621 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41622 END IF;
41623
41624 --
41625 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41626 --
41627 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41628 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41629 ELSE
41630 ---------------------------------------------------------------------------------------------------
41631 -- 4262811a Switch Sign
41632 ---------------------------------------------------------------------------------------------------
41633 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41634 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41635 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41636 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41637 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41638 -- 5132302
41639 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41640 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41641
41642 END IF;
41643
41644 -- 4955764
41645 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41646 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41647
41648
41649 XLA_AE_LINES_PKG.ValidateCurrentLine;
41650 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41651
41652 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41653 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41654 ,p_balance_type_code => l_balance_type_code);
41655
41656 END IF;
41657
41658 -----------------------------------------------------------------------------------------
41659 -- 4262811 Multiperiod Accounting
41660 -----------------------------------------------------------------------------------------
41661 -- No MPA option is assigned.
41662
41663
41664 END IF;
41665 END IF;
41666 --
41667
41668 --
41669 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41670 trace
41671 (p_msg => 'END of AcctLineType_76'
41672 ,p_level => C_LEVEL_PROCEDURE
41673 ,p_module => l_log_module);
41674 END IF;
41675 --
41676 EXCEPTION
41677 WHEN xla_exceptions_pkg.application_exception THEN
41678 RAISE;
41679 WHEN OTHERS THEN
41680 xla_exceptions_pkg.raise_message
41681 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_76');
41682 END AcctLineType_76;
41683 --
41684
41685 ---------------------------------------
41686 --
41687 -- PRIVATE FUNCTION
41688 -- AcctLineType_77
41689 --
41690 ---------------------------------------
41691 PROCEDURE AcctLineType_77 (
41692 p_application_id IN NUMBER
41693 ,p_event_id IN NUMBER
41694 ,p_calculate_acctd_flag IN VARCHAR2
41695 ,p_calculate_g_l_flag IN VARCHAR2
41696 ,p_actual_flag IN OUT VARCHAR2
41697 ,p_balance_type_code OUT VARCHAR2
41698 ,p_gain_or_loss_ref OUT VARCHAR2
41699
41700 --Journal entry Line Description
41701 , p_source_3 IN VARCHAR2
41702 --Budget Account
41703 , p_source_9 IN NUMBER
41704 --Main Or Backing Code
41705 , p_source_13 IN VARCHAR2
41706 --Accounting Reversal Flag
41707 , p_source_15 IN VARCHAR2
41708 --Distribution Link Type
41709 , p_source_17 IN VARCHAR2
41710 --PO Distribution Identifier
41711 , p_source_19 IN NUMBER
41712 --PO Header Identifier
41713 , p_source_20 IN NUMBER
41714 --Applied To Application Identifier
41715 , p_source_21 IN NUMBER
41716 --Applied To Distribution Link Type
41717 , p_source_22 IN VARCHAR2
41718 --Applied To Entity Code
41719 , p_source_23 IN VARCHAR2
41720 --Applied To Distribution Identifier 1
41721 , p_source_24 IN NUMBER
41722 --Applied To Header Identifier 1
41723 , p_source_25 IN NUMBER
41724 --Entered Amount
41725 , p_source_26 IN NUMBER
41726 --Currency Code
41727 , p_source_27 IN VARCHAR2
41728 --Accounted Amount
41729 , p_source_28 IN NUMBER
41730 --PO Encumbrance Upgrade Option
41731 , p_source_29 IN VARCHAR2
41732 --PO Upgrade Encumbrance Type Identifier
41733 , p_source_32 IN NUMBER
41734 --Currency Conversion Date
41735 , p_source_35 IN DATE
41736 --Currency Conversion Rate
41737 , p_source_36 IN NUMBER
41738 --Currency Conversion Type
41739 , p_source_37 IN VARCHAR2
41740 )
41741 IS
41742
41743 l_component_type VARCHAR2(80);
41744 l_component_code VARCHAR2(30);
41745 l_component_type_code VARCHAR2(1);
41746 l_component_appl_id INTEGER;
41747 l_amb_context_code VARCHAR2(30);
41748 l_entity_code VARCHAR2(30);
41749 l_event_class_code VARCHAR2(30);
41750 l_ae_header_id NUMBER;
41751 l_event_type_code VARCHAR2(30);
41752 l_line_definition_code VARCHAR2(30);
41753 l_line_definition_owner_code VARCHAR2(1);
41754 --
41755 -- adr variables
41756 l_segment VARCHAR2(30);
41757 l_ccid NUMBER;
41758 l_adr_transaction_coa_id NUMBER;
41759 l_adr_accounting_coa_id NUMBER;
41760 l_adr_flexfield_segment_code VARCHAR2(30);
41761 l_adr_flex_value_set_id NUMBER;
41762 l_adr_value_type_code VARCHAR2(30);
41763 l_adr_value_combination_id NUMBER;
41764 l_adr_value_segment_code VARCHAR2(30);
41765
41766 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41767 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41768 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41769 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41770
41771 -- 4262811 Variables ------------------------------------------------------------------------------------------
41772 l_entered_amt_idx NUMBER;
41773 l_accted_amt_idx NUMBER;
41774 l_acc_rev_flag VARCHAR2(1);
41775 l_accrual_line_num NUMBER;
41776 l_tmp_amt NUMBER;
41777 l_acc_rev_natural_side_code VARCHAR2(1);
41778
41779 l_num_entries NUMBER;
41780 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41781 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41782 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41783 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41784 l_recog_line_1 NUMBER;
41785 l_recog_line_2 NUMBER;
41786
41787 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41788 l_bflow_applied_to_amt NUMBER; -- 5132302
41789 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41790
41791 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41792
41793 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41794 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41795
41796 ---------------------------------------------------------------------------------------------------------------
41797
41798
41799 --
41800 -- bulk performance
41801 --
41802 l_balance_type_code VARCHAR2(1);
41803 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41804 l_log_module VARCHAR2(240);
41805
41806 --
41807 -- Upgrade strategy
41808 --
41809 l_actual_upg_option VARCHAR2(1);
41810 l_enc_upg_option VARCHAR2(1);
41811
41812 --
41813 BEGIN
41814 --
41815 IF g_log_enabled THEN
41816 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
41817 END IF;
41818 --
41819 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41820
41821 trace
41822 (p_msg => 'BEGIN of AcctLineType_77'
41823 ,p_level => C_LEVEL_PROCEDURE
41824 ,p_module => l_log_module);
41825
41826 END IF;
41827 --
41828 l_component_type := 'AMB_JLT';
41829 l_component_code := 'FV_REOPEN_FINAL_MATCHED_PO_DR';
41830 l_component_type_code := 'S';
41831 l_component_appl_id := 201;
41832 l_amb_context_code := 'DEFAULT';
41833 l_entity_code := 'PURCHASE_ORDER';
41834 l_event_class_code := 'PO_PA';
41835 l_event_type_code := 'PO_PA_ALL';
41836 l_line_definition_owner_code := 'S';
41837 l_line_definition_code := 'FV_PO_ALL';
41838 --
41839 l_balance_type_code := 'A';
41840 l_segment := NULL;
41841 l_ccid := NULL;
41842 l_adr_transaction_coa_id := NULL;
41843 l_adr_accounting_coa_id := NULL;
41844 l_adr_flexfield_segment_code := NULL;
41845 l_adr_flex_value_set_id := NULL;
41846 l_adr_value_type_code := NULL;
41847 l_adr_value_combination_id := NULL;
41848 l_adr_value_segment_code := NULL;
41849
41850 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41851 l_bflow_class_code := ''; -- 4219869 Business Flow
41852 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41853 l_budgetary_control_flag := 'Y';
41854
41855 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41856 l_bflow_applied_to_amt := NULL; -- 5132302
41857 l_entered_amt_idx := NULL; -- 4262811
41858 l_accted_amt_idx := NULL; -- 4262811
41859 l_acc_rev_flag := NULL; -- 4262811
41860 l_accrual_line_num := NULL; -- 4262811
41861 l_tmp_amt := NULL; -- 4262811
41862 --
41863
41864 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41865 l_balance_type_code <> 'B' THEN
41866 IF NVL(
41867 xla_ae_sources_pkg.GetSystemSourceChar(
41868 p_source_code => 'XLA_EVENT_TYPE_CODE'
41869 , p_source_type_code => 'Y'
41870 , p_source_application_id => 602
41871 ),'
41872 ') = 'PO_REOPEN_FINAL_MATCH' AND
41873 NVL(p_source_13,'
41874 ') = 'M'
41875 THEN
41876
41877 --
41878 XLA_AE_LINES_PKG.SetNewLine;
41879
41880 p_balance_type_code := l_balance_type_code;
41881 -- set the flag so later we will know whether the gain loss line needs to be created
41882
41883 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41884 p_actual_flag :='A';
41885 END IF;
41886
41887 --
41888 -- bulk performance
41889 --
41890 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41891 p_header_num => 0); -- 4262811
41892 --
41893 -- set accounting line options
41894 --
41895 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41896 p_natural_side_code => 'D'
41897 , p_gain_or_loss_flag => 'N'
41898 , p_gl_transfer_mode_code => 'S'
41899 , p_acct_entry_type_code => 'A'
41900 , p_switch_side_flag => 'N'
41901 , p_merge_duplicate_code => 'N'
41902 );
41903 --
41904 l_acc_rev_natural_side_code := 'C'; -- 4262811
41905 --
41906 --
41907 -- set accounting line type info
41908 --
41909 xla_ae_lines_pkg.SetAcctLineType
41910 (p_component_type => l_component_type
41911 ,p_event_type_code => l_event_type_code
41912 ,p_line_definition_owner_code => l_line_definition_owner_code
41913 ,p_line_definition_code => l_line_definition_code
41914 ,p_accounting_line_code => l_component_code
41915 ,p_accounting_line_type_code => l_component_type_code
41916 ,p_accounting_line_appl_id => l_component_appl_id
41917 ,p_amb_context_code => l_amb_context_code
41918 ,p_entity_code => l_entity_code
41919 ,p_event_class_code => l_event_class_code);
41920 --
41921 -- set accounting class
41922 --
41923 xla_ae_lines_pkg.SetAcctClass(
41924 p_accounting_class_code => 'PURCHASE_ORDER'
41925 , p_ae_header_id => l_ae_header_id
41926 );
41927
41928 --
41929 -- set rounding class
41930 --
41931 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41932 'PURCHASE_ORDER';
41933
41934 --
41935 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41936 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41937 --
41938 -- bulk performance
41939 --
41940 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41941
41942 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41943 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41944
41945 -- 4955764
41946 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41947 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41948
41949 -- 4458381 Public Sector Enh
41950
41951 --
41952 -- set accounting attributes for the line type
41953 --
41954 l_entered_amt_idx := 23;
41955 l_accted_amt_idx := 28;
41956 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41957 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41958 l_rec_acct_attrs.array_char_value(1) := p_source_15;
41959 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
41960 l_rec_acct_attrs.array_num_value(2) :=
41961 xla_ae_sources_pkg.GetSystemSourceNum(
41962 p_source_code => 'XLA_EVENT_APPL_ID'
41963 , p_source_type_code => 'Y'
41964 , p_source_application_id => 602
41965 );
41966 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
41967 l_rec_acct_attrs.array_char_value(3) := p_source_17;
41968 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
41969 l_rec_acct_attrs.array_char_value(4) :=
41970 xla_ae_sources_pkg.GetSystemSourceChar(
41971 p_source_code => 'XLA_ENTITY_CODE'
41972 , p_source_type_code => 'Y'
41973 , p_source_application_id => 602
41974 );
41975 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
41976 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
41977 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
41978 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
41979 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
41980 l_rec_acct_attrs.array_num_value(7) := p_source_21;
41981 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41982 l_rec_acct_attrs.array_char_value(8) := p_source_22;
41983 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
41984 l_rec_acct_attrs.array_char_value(9) := p_source_23;
41985 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
41986 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
41987 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41988 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
41989 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
41990 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
41991 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
41992 l_rec_acct_attrs.array_char_value(13) := p_source_17;
41993 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
41994 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
41995 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
41996 l_rec_acct_attrs.array_num_value(15) := p_source_26;
41997 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
41998 l_rec_acct_attrs.array_char_value(16) := p_source_27;
41999 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
42000 l_rec_acct_attrs.array_num_value(17) := p_source_28;
42001 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
42002 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
42003 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
42004 l_rec_acct_attrs.array_num_value(19) := p_source_26;
42005 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
42006 l_rec_acct_attrs.array_char_value(20) := p_source_27;
42007 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
42008 l_rec_acct_attrs.array_num_value(21) := p_source_28;
42009 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
42010 l_rec_acct_attrs.array_char_value(22) := p_source_29;
42011 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
42012 l_rec_acct_attrs.array_num_value(23) := p_source_26;
42013 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
42014 l_rec_acct_attrs.array_char_value(24) := p_source_27;
42015 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
42016 l_rec_acct_attrs.array_date_value(25) := p_source_35;
42017 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
42018 l_rec_acct_attrs.array_num_value(26) := p_source_36;
42019 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
42020 l_rec_acct_attrs.array_char_value(27) := p_source_37;
42021 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
42022 l_rec_acct_attrs.array_num_value(28) := p_source_28;
42023 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
42024 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_24);
42025 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
42026 l_rec_acct_attrs.array_char_value(30) := p_source_22;
42027 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_CR_ENC_TYPE_ID';
42028 l_rec_acct_attrs.array_num_value(31) := p_source_32;
42029 l_rec_acct_attrs.array_acct_attr_code(32) := 'UPG_DR_ENC_TYPE_ID';
42030 l_rec_acct_attrs.array_num_value(32) := p_source_32;
42031
42032 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42033 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42034
42035 ---------------------------------------------------------------------------------------------------------------
42036 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42037 ---------------------------------------------------------------------------------------------------------------
42038 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42039
42040 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42041 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42042
42043 IF xla_accounting_cache_pkg.GetValueChar
42044 (p_source_code => 'LEDGER_CATEGORY_CODE'
42045 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42046 AND l_bflow_method_code = 'PRIOR_ENTRY'
42047 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42048 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42049 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42050 )
42051 THEN
42052 xla_ae_lines_pkg.BflowUpgEntry
42053 (p_business_method_code => l_bflow_method_code
42054 ,p_business_class_code => l_bflow_class_code
42055 ,p_balance_type => l_balance_type_code);
42056 ELSE
42057 NULL;
42061 --
42058 -- No business flow processing for business flow method of NONE.
42059 END IF;
42060
42062 -- call analytical criteria
42063 --
42064
42065 --
42066 -- call description
42067 --
42068
42069 xla_ae_lines_pkg.SetLineDescription(
42070 p_ae_header_id => l_ae_header_id
42071 ,p_description => Description_2 (
42072 p_application_id => p_application_id
42073 , p_ae_header_id => l_ae_header_id
42074 , p_source_3 => p_source_3
42075 )
42076 );
42077
42078
42079 --
42080 -- call ADRs
42081 -- Bug 4922099
42082 --
42083 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42084 (NVL(l_actual_upg_option, 'N') = 'O') OR
42085 (NVL(l_enc_upg_option, 'N') = 'O')
42086 )
42087 THEN
42088 NULL;
42089 --
42090 --
42091
42092 l_ccid := AcctDerRule_9(
42093 p_application_id => p_application_id
42094 , p_ae_header_id => l_ae_header_id
42095 , p_source_9 => p_source_9
42096 , x_transaction_coa_id => l_adr_transaction_coa_id
42097 , x_accounting_coa_id => l_adr_accounting_coa_id
42098 , x_value_type_code => l_adr_value_type_code
42099 , p_side => 'NA'
42100 );
42101
42102 xla_ae_lines_pkg.set_ccid(
42103 p_code_combination_id => l_ccid
42104 , p_value_type_code => l_adr_value_type_code
42105 , p_transaction_coa_id => l_adr_transaction_coa_id
42106 , p_accounting_coa_id => l_adr_accounting_coa_id
42107 , p_adr_code => 'FV_ACCOUNT_RULE'
42108 , p_adr_type_code => 'S'
42109 , p_component_type => l_component_type
42110 , p_component_code => l_component_code
42111 , p_component_type_code => l_component_type_code
42112 , p_component_appl_id => l_component_appl_id
42113 , p_amb_context_code => l_amb_context_code
42114 , p_side => 'NA'
42115 );
42116
42117
42118 l_segment := AcctDerRule_8(
42119 p_application_id => p_application_id
42120 , p_ae_header_id => l_ae_header_id
42121 , x_transaction_coa_id => l_adr_transaction_coa_id
42122 , x_accounting_coa_id => l_adr_accounting_coa_id
42123 , x_flexfield_segment_code => l_adr_flexfield_segment_code
42124 , x_flex_value_set_id => l_adr_flex_value_set_id
42125 , x_value_type_code => l_adr_value_type_code
42126 , x_value_combination_id => l_adr_value_combination_id
42127 , x_value_segment_code => l_adr_value_segment_code
42128 , p_side => 'NA'
42129 , p_override_seg_flag => 'Y'
42130 );
42131
42132 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
42133
42134 xla_ae_lines_pkg.set_segment(
42135 p_to_segment_code => 'GL_ACCOUNT'
42136 , p_segment_value => l_segment
42137 , p_from_segment_code => l_adr_value_segment_code
42138 , p_from_combination_id => l_adr_value_combination_id
42139 , p_value_type_code => l_adr_value_type_code
42140 , p_transaction_coa_id => l_adr_transaction_coa_id
42141 , p_accounting_coa_id => l_adr_accounting_coa_id
42142 , p_flexfield_segment_code => l_adr_flexfield_segment_code
42143 , p_flex_value_set_id => l_adr_flex_value_set_id
42144 , p_adr_code => 'FV_48X101_PURCHASING'
42145 , p_adr_type_code => 'S'
42146 , p_component_type => l_component_type
42147 , p_component_code => l_component_code
42148 , p_component_type_code => l_component_type_code
42149 , p_component_appl_id => l_component_appl_id
42150 , p_amb_context_code => l_amb_context_code
42151 , p_entity_code => 'PURCHASE_ORDER'
42152 , p_event_class_code => 'PO_PA'
42153 , p_side => 'NA'
42154 );
42155
42156 END IF;
42157
42158 --
42159 --
42160 END IF;
42161 --
42162 -- Bug 4922099
42163 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42164 (NVL(l_enc_upg_option, 'N') = 'O')
42165 ) AND
42166 (l_bflow_method_code = 'PRIOR_ENTRY')
42167 )
42168 THEN
42169 IF
42170 --
42171 1 = 2
42172 --
42173 THEN
42174 xla_accounting_err_pkg.build_message
42175 (p_appli_s_name => 'XLA'
42176 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42177 ,p_token_1 => 'LINE_NUMBER'
42178 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42179 ,p_token_2 => 'LINE_TYPE_NAME'
42180 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42181 l_component_type
42182 ,l_component_code
42183 ,l_component_type_code
42184 ,l_component_appl_id
42185 ,l_amb_context_code
42186 ,l_entity_code
42187 ,l_event_class_code
42188 )
42189 ,p_token_3 => 'OWNER'
42190 ,p_value_3 => xla_lookups_pkg.get_meaning(
42191 p_lookup_type => 'XLA_OWNER_TYPE'
42192 ,p_lookup_code => l_component_type_code
42193 )
42194 ,p_token_4 => 'PRODUCT_NAME'
42195 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42196 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42197 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42198 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42199 ,p_ae_header_id => NULL
42200 );
42201
42202 IF (C_LEVEL_ERROR>= g_log_level) THEN
42203 trace
42204 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42205 ,p_level => C_LEVEL_ERROR
42206 ,p_module => l_log_module);
42207 END IF;
42208 END IF;
42209 END IF;
42210 --
42211 --
42212 ------------------------------------------------------------------------------------------------
42213 -- 4219869 Business Flow
42214 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42215 -- Prior Entry. Currently, the following code is always generated.
42216 ------------------------------------------------------------------------------------------------
42217 XLA_AE_LINES_PKG.ValidateCurrentLine;
42218
42219 ------------------------------------------------------------------------------------
42220 -- 4219869 Business Flow
42221 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42222 ------------------------------------------------------------------------------------
42223 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42224
42225 ----------------------------------------------------------------------------------
42226 -- 4219869 Business Flow
42227 -- Update journal entry status -- Need to generate this within IF <condition>
42228 ----------------------------------------------------------------------------------
42229 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42230 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42231 ,p_balance_type_code => l_balance_type_code
42232 );
42233
42234 -------------------------------------------------------------------------------------------
42235 -- 4262811 - Generate the Accrual Reversal lines
42236 -------------------------------------------------------------------------------------------
42237 BEGIN
42238 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42239 (g_array_event(p_event_id).array_value_num('header_index'));
42240 IF l_acc_rev_flag IS NULL THEN
42241 l_acc_rev_flag := 'N';
42242 END IF;
42243 EXCEPTION
42244 WHEN OTHERS THEN
42245 l_acc_rev_flag := 'N';
42246 END;
42247 --
42248 IF (l_acc_rev_flag = 'Y') THEN
42249
42250 -- 4645092 ------------------------------------------------------------------------------
42251 -- To allow MPA report to determine if it should generate report process
42252 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42253 ------------------------------------------------------------------------------------------
42254
42255 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42256 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42257
42258 --
42259 -- Update the line information that should be overwritten
42260 --
42261 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42262 p_header_num => 1);
42263 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42264
42265 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42266
42267 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42268 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42269 END IF;
42270
42271 --
42272 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42273 --
42274 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42275 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42276 ELSE
42277 ---------------------------------------------------------------------------------------------------
42278 -- 4262811a Switch Sign
42279 ---------------------------------------------------------------------------------------------------
42280 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42281 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42282 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42283 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42284 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42285 -- 5132302
42286 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42287 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42288
42289 END IF;
42290
42291 -- 4955764
42292 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42293 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42294
42295
42296 XLA_AE_LINES_PKG.ValidateCurrentLine;
42297 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42298
42299 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42300 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42301 ,p_balance_type_code => l_balance_type_code);
42302
42303 END IF;
42304
42305 -----------------------------------------------------------------------------------------
42306 -- 4262811 Multiperiod Accounting
42307 -----------------------------------------------------------------------------------------
42308 -- No MPA option is assigned.
42309
42310
42311 END IF;
42312 END IF;
42313 --
42314
42315 --
42316 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42317 trace
42318 (p_msg => 'END of AcctLineType_77'
42319 ,p_level => C_LEVEL_PROCEDURE
42320 ,p_module => l_log_module);
42321 END IF;
42322 --
42323 EXCEPTION
42324 WHEN xla_exceptions_pkg.application_exception THEN
42325 RAISE;
42326 WHEN OTHERS THEN
42327 xla_exceptions_pkg.raise_message
42328 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_77');
42329 END AcctLineType_77;
42330 --
42331
42332 ---------------------------------------
42333 --
42334 -- PRIVATE FUNCTION
42335 -- AcctLineType_78
42336 --
42337 ---------------------------------------
42338 PROCEDURE AcctLineType_78 (
42339 p_application_id IN NUMBER
42340 ,p_event_id IN NUMBER
42341 ,p_calculate_acctd_flag IN VARCHAR2
42342 ,p_calculate_g_l_flag IN VARCHAR2
42343 ,p_actual_flag IN OUT VARCHAR2
42344 ,p_balance_type_code OUT VARCHAR2
42345 ,p_gain_or_loss_ref OUT VARCHAR2
42346
42347 --Budget Account
42348 , p_source_9 IN NUMBER
42349 --Accounting Reversal Flag
42350 , p_source_15 IN VARCHAR2
42351 --Distribution Link Type
42352 , p_source_17 IN VARCHAR2
42353 --Applied To Application Identifier
42354 , p_source_21 IN NUMBER
42355 --Applied To Distribution Link Type
42356 , p_source_22 IN VARCHAR2
42357 --Applied To Entity Code
42358 , p_source_23 IN VARCHAR2
42359 --Applied To Distribution Identifier 1
42360 , p_source_24 IN NUMBER
42361 --Applied To Header Identifier 1
42362 , p_source_25 IN NUMBER
42363 --Entered Amount
42364 , p_source_26 IN NUMBER
42365 --Currency Code
42366 , p_source_27 IN VARCHAR2
42367 --Accounted Amount
42368 , p_source_28 IN NUMBER
42369 --JFMIP Reference
42370 , p_source_31 IN VARCHAR2
42371 --Requisition Distribution Identifier
42372 , p_source_43 IN NUMBER
42373 --Requisition Identifier
42374 , p_source_44 IN NUMBER
42375 --Requisition Encumbrance Upgrade Option
42376 , p_source_45 IN VARCHAR2
42377 --Requisition Upgrade Encumbrance Type Identifier
42378 , p_source_46 IN NUMBER
42379 )
42380 IS
42381
42382 l_component_type VARCHAR2(80);
42383 l_component_code VARCHAR2(30);
42384 l_component_type_code VARCHAR2(1);
42385 l_component_appl_id INTEGER;
42386 l_amb_context_code VARCHAR2(30);
42387 l_entity_code VARCHAR2(30);
42388 l_event_class_code VARCHAR2(30);
42389 l_ae_header_id NUMBER;
42390 l_event_type_code VARCHAR2(30);
42391 l_line_definition_code VARCHAR2(30);
42392 l_line_definition_owner_code VARCHAR2(1);
42393 --
42394 -- adr variables
42395 l_segment VARCHAR2(30);
42396 l_ccid NUMBER;
42397 l_adr_transaction_coa_id NUMBER;
42398 l_adr_accounting_coa_id NUMBER;
42399 l_adr_flexfield_segment_code VARCHAR2(30);
42400 l_adr_flex_value_set_id NUMBER;
42401 l_adr_value_type_code VARCHAR2(30);
42402 l_adr_value_combination_id NUMBER;
42403 l_adr_value_segment_code VARCHAR2(30);
42404
42405 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42406 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42407 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42408 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42409
42410 -- 4262811 Variables ------------------------------------------------------------------------------------------
42411 l_entered_amt_idx NUMBER;
42412 l_accted_amt_idx NUMBER;
42413 l_acc_rev_flag VARCHAR2(1);
42414 l_accrual_line_num NUMBER;
42415 l_tmp_amt NUMBER;
42416 l_acc_rev_natural_side_code VARCHAR2(1);
42417
42418 l_num_entries NUMBER;
42419 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42420 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42421 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42422 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42423 l_recog_line_1 NUMBER;
42424 l_recog_line_2 NUMBER;
42425
42426 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42427 l_bflow_applied_to_amt NUMBER; -- 5132302
42428 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42429
42430 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42431
42432 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42433 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42434
42435 ---------------------------------------------------------------------------------------------------------------
42436
42437
42438 --
42439 -- bulk performance
42440 --
42441 l_balance_type_code VARCHAR2(1);
42442 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42443 l_log_module VARCHAR2(240);
42444
42445 --
42446 -- Upgrade strategy
42447 --
42448 l_actual_upg_option VARCHAR2(1);
42449 l_enc_upg_option VARCHAR2(1);
42450
42451 --
42452 BEGIN
42453 --
42454 IF g_log_enabled THEN
42455 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
42456 END IF;
42457 --
42458 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42459
42460 trace
42461 (p_msg => 'BEGIN of AcctLineType_78'
42462 ,p_level => C_LEVEL_PROCEDURE
42463 ,p_module => l_log_module);
42464
42465 END IF;
42466 --
42467 l_component_type := 'AMB_JLT';
42468 l_component_code := 'FV_REQ_CANCEL_CR';
42469 l_component_type_code := 'S';
42470 l_component_appl_id := 201;
42471 l_amb_context_code := 'DEFAULT';
42472 l_entity_code := 'REQUISITION';
42473 l_event_class_code := 'REQUISITION';
42474 l_event_type_code := 'REQUISITION_ALL';
42475 l_line_definition_owner_code := 'S';
42476 l_line_definition_code := 'FV_REQ_ALL';
42477 --
42478 l_balance_type_code := 'A';
42479 l_segment := NULL;
42480 l_ccid := NULL;
42481 l_adr_transaction_coa_id := NULL;
42482 l_adr_accounting_coa_id := NULL;
42483 l_adr_flexfield_segment_code := NULL;
42484 l_adr_flex_value_set_id := NULL;
42485 l_adr_value_type_code := NULL;
42486 l_adr_value_combination_id := NULL;
42487 l_adr_value_segment_code := NULL;
42488
42489 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
42490 l_bflow_class_code := 'FV_REQ_CR'; -- 4219869 Business Flow
42491 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
42492 l_budgetary_control_flag := 'Y';
42493
42494 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42495 l_bflow_applied_to_amt := NULL; -- 5132302
42496 l_entered_amt_idx := NULL; -- 4262811
42497 l_accted_amt_idx := NULL; -- 4262811
42498 l_acc_rev_flag := NULL; -- 4262811
42499 l_accrual_line_num := NULL; -- 4262811
42500 l_tmp_amt := NULL; -- 4262811
42501 --
42502
42503 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42504 l_balance_type_code <> 'B' THEN
42505 IF NVL(
42506 xla_ae_sources_pkg.GetSystemSourceChar(
42507 p_source_code => 'XLA_EVENT_TYPE_CODE'
42508 , p_source_type_code => 'Y'
42509 , p_source_application_id => 602
42510 ),'
42511 ') = 'REQ_CANCELLED'
42512 THEN
42513
42514 --
42515 XLA_AE_LINES_PKG.SetNewLine;
42516
42517 p_balance_type_code := l_balance_type_code;
42518 -- set the flag so later we will know whether the gain loss line needs to be created
42519
42520 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42521 p_actual_flag :='A';
42522 END IF;
42523
42524 --
42525 -- bulk performance
42526 --
42527 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42528 p_header_num => 0); -- 4262811
42529 --
42530 -- set accounting line options
42531 --
42532 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42533 p_natural_side_code => 'C'
42534 , p_gain_or_loss_flag => 'N'
42535 , p_gl_transfer_mode_code => 'S'
42536 , p_acct_entry_type_code => 'A'
42537 , p_switch_side_flag => 'N'
42538 , p_merge_duplicate_code => 'N'
42539 );
42540 --
42541 l_acc_rev_natural_side_code := 'D'; -- 4262811
42542 --
42543 --
42544 -- set accounting line type info
42545 --
42546 xla_ae_lines_pkg.SetAcctLineType
42547 (p_component_type => l_component_type
42548 ,p_event_type_code => l_event_type_code
42549 ,p_line_definition_owner_code => l_line_definition_owner_code
42550 ,p_line_definition_code => l_line_definition_code
42551 ,p_accounting_line_code => l_component_code
42552 ,p_accounting_line_type_code => l_component_type_code
42553 ,p_accounting_line_appl_id => l_component_appl_id
42554 ,p_amb_context_code => l_amb_context_code
42555 ,p_entity_code => l_entity_code
42556 ,p_event_class_code => l_event_class_code);
42557 --
42558 -- set accounting class
42559 --
42560 xla_ae_lines_pkg.SetAcctClass(
42561 p_accounting_class_code => 'REQUISITION'
42562 , p_ae_header_id => l_ae_header_id
42563 );
42564
42565 --
42566 -- set rounding class
42567 --
42568 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42569 'REQUISITION';
42570
42571 --
42572 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42573 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42574 --
42575 -- bulk performance
42576 --
42577 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42578
42579 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42580 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42581
42582 -- 4955764
42583 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42584 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42585
42586 -- 4458381 Public Sector Enh
42587
42588 --
42589 -- set accounting attributes for the line type
42590 --
42591 l_entered_amt_idx := 23;
42592 l_accted_amt_idx := 25;
42593 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42594 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42595 l_rec_acct_attrs.array_char_value(1) := p_source_15;
42596 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
42597 l_rec_acct_attrs.array_num_value(2) :=
42598 xla_ae_sources_pkg.GetSystemSourceNum(
42599 p_source_code => 'XLA_EVENT_APPL_ID'
42600 , p_source_type_code => 'Y'
42601 , p_source_application_id => 602
42602 );
42603 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
42604 l_rec_acct_attrs.array_char_value(3) := p_source_17;
42605 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
42606 l_rec_acct_attrs.array_char_value(4) :=
42607 xla_ae_sources_pkg.GetSystemSourceChar(
42608 p_source_code => 'XLA_ENTITY_CODE'
42609 , p_source_type_code => 'Y'
42610 , p_source_application_id => 602
42611 );
42612 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
42613 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_43);
42614 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
42615 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_44);
42616 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
42617 l_rec_acct_attrs.array_num_value(7) := p_source_21;
42618 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42619 l_rec_acct_attrs.array_char_value(8) := p_source_22;
42620 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
42621 l_rec_acct_attrs.array_char_value(9) := p_source_23;
42622 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
42623 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
42624 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42625 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
42626 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
42627 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_43);
42628 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
42629 l_rec_acct_attrs.array_char_value(13) := p_source_17;
42630 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
42631 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
42632 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
42633 l_rec_acct_attrs.array_num_value(15) := p_source_26;
42634 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
42635 l_rec_acct_attrs.array_char_value(16) := p_source_27;
42636 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
42637 l_rec_acct_attrs.array_num_value(17) := p_source_28;
42641 l_rec_acct_attrs.array_num_value(19) := p_source_26;
42638 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
42639 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
42640 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
42642 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
42643 l_rec_acct_attrs.array_char_value(20) := p_source_27;
42644 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
42645 l_rec_acct_attrs.array_num_value(21) := p_source_28;
42646 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
42647 l_rec_acct_attrs.array_char_value(22) := p_source_45;
42648 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
42649 l_rec_acct_attrs.array_num_value(23) := p_source_26;
42650 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
42651 l_rec_acct_attrs.array_char_value(24) := p_source_27;
42652 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
42653 l_rec_acct_attrs.array_num_value(25) := p_source_28;
42654 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
42655 l_rec_acct_attrs.array_char_value(26) := p_source_31;
42656 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
42657 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
42658 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
42659 l_rec_acct_attrs.array_char_value(28) := p_source_22;
42660 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
42661 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_43);
42662 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
42663 l_rec_acct_attrs.array_num_value(30) := p_source_46;
42664 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
42665 l_rec_acct_attrs.array_num_value(31) := p_source_46;
42666
42667 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42668 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42669
42670 ---------------------------------------------------------------------------------------------------------------
42671 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42672 ---------------------------------------------------------------------------------------------------------------
42673 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42674
42675 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42676 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42677
42678 IF xla_accounting_cache_pkg.GetValueChar
42679 (p_source_code => 'LEDGER_CATEGORY_CODE'
42680 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42681 AND l_bflow_method_code = 'PRIOR_ENTRY'
42682 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42683 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42684 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42685 )
42686 THEN
42687 xla_ae_lines_pkg.BflowUpgEntry
42688 (p_business_method_code => l_bflow_method_code
42689 ,p_business_class_code => l_bflow_class_code
42690 ,p_balance_type => l_balance_type_code);
42691 ELSE
42692 NULL;
42693 XLA_AE_LINES_PKG.business_flow_validation(
42694 p_business_method_code => l_bflow_method_code
42695 ,p_business_class_code => l_bflow_class_code
42696 ,p_inherit_description_flag => l_inherit_desc_flag);
42697 END IF;
42698
42699 --
42700 -- call analytical criteria
42701 --
42702 -- Inherited Analytical Criteria for business flow method of Prior Entry.
42703 --
42704 -- call description
42705 --
42706 -- No description or it is inherited.
42707 --
42708 -- call ADRs
42709 -- Bug 4922099
42710 --
42711 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42712 (NVL(l_actual_upg_option, 'N') = 'O') OR
42713 (NVL(l_enc_upg_option, 'N') = 'O')
42714 )
42715 THEN
42716 NULL;
42717 --
42718 --
42719
42720 --
42721 --
42722 END IF;
42723 --
42724 -- Bug 4922099
42725 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42726 (NVL(l_enc_upg_option, 'N') = 'O')
42727 ) AND
42728 (l_bflow_method_code = 'PRIOR_ENTRY')
42729 )
42730 THEN
42731 IF
42732 --
42733 1 = 1
42734 --
42735 THEN
42736 xla_accounting_err_pkg.build_message
42737 (p_appli_s_name => 'XLA'
42738 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42739 ,p_token_1 => 'LINE_NUMBER'
42740 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42741 ,p_token_2 => 'LINE_TYPE_NAME'
42742 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42743 l_component_type
42744 ,l_component_code
42745 ,l_component_type_code
42746 ,l_component_appl_id
42747 ,l_amb_context_code
42748 ,l_entity_code
42749 ,l_event_class_code
42750 )
42751 ,p_token_3 => 'OWNER'
42752 ,p_value_3 => xla_lookups_pkg.get_meaning(
42753 p_lookup_type => 'XLA_OWNER_TYPE'
42754 ,p_lookup_code => l_component_type_code
42755 )
42756 ,p_token_4 => 'PRODUCT_NAME'
42757 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42758 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42759 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42760 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42761 ,p_ae_header_id => NULL
42762 );
42763
42764 IF (C_LEVEL_ERROR>= g_log_level) THEN
42765 trace
42766 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42767 ,p_level => C_LEVEL_ERROR
42768 ,p_module => l_log_module);
42769 END IF;
42770 END IF;
42771 END IF;
42772 --
42773 --
42774 ------------------------------------------------------------------------------------------------
42775 -- 4219869 Business Flow
42776 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42777 -- Prior Entry. Currently, the following code is always generated.
42778 ------------------------------------------------------------------------------------------------
42779 -- No ValidateCurrentLine for business flow method of Prior Entry
42780
42781 ------------------------------------------------------------------------------------
42782 -- 4219869 Business Flow
42783 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42784 ------------------------------------------------------------------------------------
42785 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42786
42787 ----------------------------------------------------------------------------------
42788 -- 4219869 Business Flow
42789 -- Update journal entry status -- Need to generate this within IF <condition>
42790 ----------------------------------------------------------------------------------
42791 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42792 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42793 ,p_balance_type_code => l_balance_type_code
42794 );
42795
42796 -------------------------------------------------------------------------------------------
42797 -- 4262811 - Generate the Accrual Reversal lines
42798 -------------------------------------------------------------------------------------------
42799 BEGIN
42800 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42801 (g_array_event(p_event_id).array_value_num('header_index'));
42802 IF l_acc_rev_flag IS NULL THEN
42803 l_acc_rev_flag := 'N';
42804 END IF;
42805 EXCEPTION
42806 WHEN OTHERS THEN
42807 l_acc_rev_flag := 'N';
42808 END;
42809 --
42810 IF (l_acc_rev_flag = 'Y') THEN
42811
42812 -- 4645092 ------------------------------------------------------------------------------
42813 -- To allow MPA report to determine if it should generate report process
42814 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42815 ------------------------------------------------------------------------------------------
42816
42817 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42818 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42819
42820 --
42821 -- Update the line information that should be overwritten
42822 --
42823 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42824 p_header_num => 1);
42825 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42826
42827 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42828
42829 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42830 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42831 END IF;
42832
42833 --
42834 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42835 --
42836 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42837 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42838 ELSE
42839 ---------------------------------------------------------------------------------------------------
42840 -- 4262811a Switch Sign
42841 ---------------------------------------------------------------------------------------------------
42842 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42843 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42844 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42845 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42846 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42847 -- 5132302
42848 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42849 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42850
42851 END IF;
42852
42853 -- 4955764
42854 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42855 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42856
42857
42858 XLA_AE_LINES_PKG.ValidateCurrentLine;
42859 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42860
42861 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42862 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42863 ,p_balance_type_code => l_balance_type_code);
42864
42865 END IF;
42866
42867 -----------------------------------------------------------------------------------------
42868 -- 4262811 Multiperiod Accounting
42869 -----------------------------------------------------------------------------------------
42870 -- No MPA option is assigned.
42871
42872
42873 END IF;
42874 END IF;
42875 --
42876
42877 --
42878 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42879 trace
42880 (p_msg => 'END of AcctLineType_78'
42881 ,p_level => C_LEVEL_PROCEDURE
42882 ,p_module => l_log_module);
42883 END IF;
42884 --
42885 EXCEPTION
42886 WHEN xla_exceptions_pkg.application_exception THEN
42887 RAISE;
42888 WHEN OTHERS THEN
42889 xla_exceptions_pkg.raise_message
42890 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_78');
42891 END AcctLineType_78;
42892 --
42893
42894 ---------------------------------------
42895 --
42896 -- PRIVATE FUNCTION
42897 -- AcctLineType_79
42898 --
42899 ---------------------------------------
42900 PROCEDURE AcctLineType_79 (
42901 p_application_id IN NUMBER
42902 ,p_event_id IN NUMBER
42903 ,p_calculate_acctd_flag IN VARCHAR2
42904 ,p_calculate_g_l_flag IN VARCHAR2
42905 ,p_actual_flag IN OUT VARCHAR2
42906 ,p_balance_type_code OUT VARCHAR2
42907 ,p_gain_or_loss_ref OUT VARCHAR2
42908
42909 --Budget Account
42910 , p_source_9 IN NUMBER
42911 --Accounting Reversal Flag
42912 , p_source_15 IN VARCHAR2
42913 --Distribution Link Type
42914 , p_source_17 IN VARCHAR2
42915 --Applied To Application Identifier
42916 , p_source_21 IN NUMBER
42917 --Applied To Distribution Link Type
42918 , p_source_22 IN VARCHAR2
42919 --Applied To Entity Code
42920 , p_source_23 IN VARCHAR2
42921 --Applied To Distribution Identifier 1
42922 , p_source_24 IN NUMBER
42923 --Applied To Header Identifier 1
42924 , p_source_25 IN NUMBER
42925 --Entered Amount
42926 , p_source_26 IN NUMBER
42927 --Currency Code
42928 , p_source_27 IN VARCHAR2
42929 --Accounted Amount
42930 , p_source_28 IN NUMBER
42931 --JFMIP Reference
42932 , p_source_31 IN VARCHAR2
42933 --Requisition Distribution Identifier
42934 , p_source_43 IN NUMBER
42935 --Requisition Identifier
42936 , p_source_44 IN NUMBER
42937 --Requisition Encumbrance Upgrade Option
42938 , p_source_45 IN VARCHAR2
42939 --Requisition Upgrade Encumbrance Type Identifier
42940 , p_source_46 IN NUMBER
42941 )
42942 IS
42943
42944 l_component_type VARCHAR2(80);
42945 l_component_code VARCHAR2(30);
42946 l_component_type_code VARCHAR2(1);
42947 l_component_appl_id INTEGER;
42948 l_amb_context_code VARCHAR2(30);
42949 l_entity_code VARCHAR2(30);
42950 l_event_class_code VARCHAR2(30);
42951 l_ae_header_id NUMBER;
42952 l_event_type_code VARCHAR2(30);
42953 l_line_definition_code VARCHAR2(30);
42954 l_line_definition_owner_code VARCHAR2(1);
42955 --
42956 -- adr variables
42957 l_segment VARCHAR2(30);
42958 l_ccid NUMBER;
42959 l_adr_transaction_coa_id NUMBER;
42960 l_adr_accounting_coa_id NUMBER;
42961 l_adr_flexfield_segment_code VARCHAR2(30);
42962 l_adr_flex_value_set_id NUMBER;
42963 l_adr_value_type_code VARCHAR2(30);
42964 l_adr_value_combination_id NUMBER;
42965 l_adr_value_segment_code VARCHAR2(30);
42966
42967 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42968 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42969 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42970 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42971
42972 -- 4262811 Variables ------------------------------------------------------------------------------------------
42973 l_entered_amt_idx NUMBER;
42974 l_accted_amt_idx NUMBER;
42975 l_acc_rev_flag VARCHAR2(1);
42976 l_accrual_line_num NUMBER;
42977 l_tmp_amt NUMBER;
42978 l_acc_rev_natural_side_code VARCHAR2(1);
42979
42980 l_num_entries NUMBER;
42981 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42982 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42983 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42984 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42985 l_recog_line_1 NUMBER;
42986 l_recog_line_2 NUMBER;
42987
42988 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42989 l_bflow_applied_to_amt NUMBER; -- 5132302
42990 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42991
42992 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42993
42994 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42995 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42996
42997 ---------------------------------------------------------------------------------------------------------------
42998
42999
43000 --
43001 -- bulk performance
43002 --
43003 l_balance_type_code VARCHAR2(1);
43004 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43005 l_log_module VARCHAR2(240);
43006
43007 --
43008 -- Upgrade strategy
43009 --
43010 l_actual_upg_option VARCHAR2(1);
43011 l_enc_upg_option VARCHAR2(1);
43012
43013 --
43014 BEGIN
43015 --
43016 IF g_log_enabled THEN
43017 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
43018 END IF;
43019 --
43020 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43021
43022 trace
43023 (p_msg => 'BEGIN of AcctLineType_79'
43024 ,p_level => C_LEVEL_PROCEDURE
43025 ,p_module => l_log_module);
43026
43027 END IF;
43028 --
43029 l_component_type := 'AMB_JLT';
43030 l_component_code := 'FV_REQ_CANCEL_DR';
43031 l_component_type_code := 'S';
43032 l_component_appl_id := 201;
43033 l_amb_context_code := 'DEFAULT';
43034 l_entity_code := 'REQUISITION';
43035 l_event_class_code := 'REQUISITION';
43036 l_event_type_code := 'REQUISITION_ALL';
43037 l_line_definition_owner_code := 'S';
43038 l_line_definition_code := 'FV_REQ_ALL';
43039 --
43040 l_balance_type_code := 'A';
43041 l_segment := NULL;
43042 l_ccid := NULL;
43043 l_adr_transaction_coa_id := NULL;
43044 l_adr_accounting_coa_id := NULL;
43045 l_adr_flexfield_segment_code := NULL;
43046 l_adr_flex_value_set_id := NULL;
43047 l_adr_value_type_code := NULL;
43048 l_adr_value_combination_id := NULL;
43049 l_adr_value_segment_code := NULL;
43050
43051 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
43052 l_bflow_class_code := 'FV_REQ_DR'; -- 4219869 Business Flow
43053 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
43054 l_budgetary_control_flag := 'Y';
43055
43056 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43057 l_bflow_applied_to_amt := NULL; -- 5132302
43058 l_entered_amt_idx := NULL; -- 4262811
43059 l_accted_amt_idx := NULL; -- 4262811
43060 l_acc_rev_flag := NULL; -- 4262811
43061 l_accrual_line_num := NULL; -- 4262811
43062 l_tmp_amt := NULL; -- 4262811
43063 --
43064
43065 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43066 l_balance_type_code <> 'B' THEN
43067 IF NVL(
43068 xla_ae_sources_pkg.GetSystemSourceChar(
43069 p_source_code => 'XLA_EVENT_TYPE_CODE'
43070 , p_source_type_code => 'Y'
43071 , p_source_application_id => 602
43072 ),'
43073 ') = 'REQ_CANCELLED'
43074 THEN
43075
43076 --
43077 XLA_AE_LINES_PKG.SetNewLine;
43078
43079 p_balance_type_code := l_balance_type_code;
43080 -- set the flag so later we will know whether the gain loss line needs to be created
43081
43082 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43083 p_actual_flag :='A';
43084 END IF;
43085
43086 --
43087 -- bulk performance
43088 --
43089 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43090 p_header_num => 0); -- 4262811
43091 --
43092 -- set accounting line options
43093 --
43094 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43095 p_natural_side_code => 'D'
43096 , p_gain_or_loss_flag => 'N'
43097 , p_gl_transfer_mode_code => 'S'
43098 , p_acct_entry_type_code => 'A'
43099 , p_switch_side_flag => 'N'
43100 , p_merge_duplicate_code => 'N'
43101 );
43102 --
43103 l_acc_rev_natural_side_code := 'C'; -- 4262811
43104 --
43105 --
43106 -- set accounting line type info
43107 --
43108 xla_ae_lines_pkg.SetAcctLineType
43109 (p_component_type => l_component_type
43110 ,p_event_type_code => l_event_type_code
43111 ,p_line_definition_owner_code => l_line_definition_owner_code
43112 ,p_line_definition_code => l_line_definition_code
43113 ,p_accounting_line_code => l_component_code
43114 ,p_accounting_line_type_code => l_component_type_code
43115 ,p_accounting_line_appl_id => l_component_appl_id
43116 ,p_amb_context_code => l_amb_context_code
43117 ,p_entity_code => l_entity_code
43118 ,p_event_class_code => l_event_class_code);
43119 --
43120 -- set accounting class
43121 --
43122 xla_ae_lines_pkg.SetAcctClass(
43123 p_accounting_class_code => 'REQUISITION'
43124 , p_ae_header_id => l_ae_header_id
43125 );
43126
43127 --
43128 -- set rounding class
43129 --
43130 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43131 'REQUISITION';
43132
43133 --
43134 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43135 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43136 --
43140
43137 -- bulk performance
43138 --
43139 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43141 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43142 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43143
43144 -- 4955764
43145 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43146 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43147
43148 -- 4458381 Public Sector Enh
43149
43150 --
43151 -- set accounting attributes for the line type
43152 --
43153 l_entered_amt_idx := 23;
43154 l_accted_amt_idx := 25;
43155 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43156 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43157 l_rec_acct_attrs.array_char_value(1) := p_source_15;
43158 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
43159 l_rec_acct_attrs.array_num_value(2) :=
43160 xla_ae_sources_pkg.GetSystemSourceNum(
43161 p_source_code => 'XLA_EVENT_APPL_ID'
43162 , p_source_type_code => 'Y'
43163 , p_source_application_id => 602
43164 );
43165 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
43166 l_rec_acct_attrs.array_char_value(3) := p_source_17;
43167 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
43168 l_rec_acct_attrs.array_char_value(4) :=
43169 xla_ae_sources_pkg.GetSystemSourceChar(
43170 p_source_code => 'XLA_ENTITY_CODE'
43171 , p_source_type_code => 'Y'
43172 , p_source_application_id => 602
43173 );
43174 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
43175 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_43);
43176 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
43177 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_44);
43178 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
43179 l_rec_acct_attrs.array_num_value(7) := p_source_21;
43180 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43181 l_rec_acct_attrs.array_char_value(8) := p_source_22;
43182 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
43183 l_rec_acct_attrs.array_char_value(9) := p_source_23;
43184 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
43185 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
43186 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43187 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
43188 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
43189 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_43);
43190 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
43191 l_rec_acct_attrs.array_char_value(13) := p_source_17;
43192 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
43193 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
43194 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
43195 l_rec_acct_attrs.array_num_value(15) := p_source_26;
43196 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
43197 l_rec_acct_attrs.array_char_value(16) := p_source_27;
43198 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
43199 l_rec_acct_attrs.array_num_value(17) := p_source_28;
43200 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
43201 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
43202 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
43203 l_rec_acct_attrs.array_num_value(19) := p_source_26;
43204 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
43205 l_rec_acct_attrs.array_char_value(20) := p_source_27;
43206 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
43207 l_rec_acct_attrs.array_num_value(21) := p_source_28;
43208 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
43209 l_rec_acct_attrs.array_char_value(22) := p_source_45;
43210 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
43211 l_rec_acct_attrs.array_num_value(23) := p_source_26;
43212 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
43213 l_rec_acct_attrs.array_char_value(24) := p_source_27;
43214 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
43215 l_rec_acct_attrs.array_num_value(25) := p_source_28;
43216 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
43217 l_rec_acct_attrs.array_char_value(26) := p_source_31;
43218 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
43219 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
43220 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
43221 l_rec_acct_attrs.array_char_value(28) := p_source_22;
43222 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
43223 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_43);
43224 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
43225 l_rec_acct_attrs.array_num_value(30) := p_source_46;
43226 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
43227 l_rec_acct_attrs.array_num_value(31) := p_source_46;
43228
43229 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43230 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43231
43232 ---------------------------------------------------------------------------------------------------------------
43233 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43234 ---------------------------------------------------------------------------------------------------------------
43235 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43236
43237 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43238 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43239
43240 IF xla_accounting_cache_pkg.GetValueChar
43241 (p_source_code => 'LEDGER_CATEGORY_CODE'
43242 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43243 AND l_bflow_method_code = 'PRIOR_ENTRY'
43244 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43245 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43246 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43247 )
43248 THEN
43249 xla_ae_lines_pkg.BflowUpgEntry
43250 (p_business_method_code => l_bflow_method_code
43251 ,p_business_class_code => l_bflow_class_code
43252 ,p_balance_type => l_balance_type_code);
43253 ELSE
43254 NULL;
43255 XLA_AE_LINES_PKG.business_flow_validation(
43256 p_business_method_code => l_bflow_method_code
43257 ,p_business_class_code => l_bflow_class_code
43258 ,p_inherit_description_flag => l_inherit_desc_flag);
43259 END IF;
43260
43261 --
43262 -- call analytical criteria
43263 --
43264 -- Inherited Analytical Criteria for business flow method of Prior Entry.
43265 --
43266 -- call description
43267 --
43268 -- No description or it is inherited.
43269 --
43270 -- call ADRs
43271 -- Bug 4922099
43272 --
43273 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43274 (NVL(l_actual_upg_option, 'N') = 'O') OR
43275 (NVL(l_enc_upg_option, 'N') = 'O')
43276 )
43277 THEN
43278 NULL;
43279 --
43280 --
43281
43282 --
43283 --
43284 END IF;
43285 --
43286 -- Bug 4922099
43287 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43288 (NVL(l_enc_upg_option, 'N') = 'O')
43289 ) AND
43290 (l_bflow_method_code = 'PRIOR_ENTRY')
43291 )
43292 THEN
43293 IF
43294 --
43295 1 = 1
43296 --
43297 THEN
43298 xla_accounting_err_pkg.build_message
43299 (p_appli_s_name => 'XLA'
43300 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43301 ,p_token_1 => 'LINE_NUMBER'
43302 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43303 ,p_token_2 => 'LINE_TYPE_NAME'
43304 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43305 l_component_type
43306 ,l_component_code
43307 ,l_component_type_code
43308 ,l_component_appl_id
43309 ,l_amb_context_code
43310 ,l_entity_code
43311 ,l_event_class_code
43312 )
43313 ,p_token_3 => 'OWNER'
43314 ,p_value_3 => xla_lookups_pkg.get_meaning(
43315 p_lookup_type => 'XLA_OWNER_TYPE'
43316 ,p_lookup_code => l_component_type_code
43317 )
43318 ,p_token_4 => 'PRODUCT_NAME'
43319 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43320 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43321 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43322 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43323 ,p_ae_header_id => NULL
43324 );
43325
43326 IF (C_LEVEL_ERROR>= g_log_level) THEN
43327 trace
43328 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43329 ,p_level => C_LEVEL_ERROR
43330 ,p_module => l_log_module);
43331 END IF;
43332 END IF;
43333 END IF;
43334 --
43335 --
43336 ------------------------------------------------------------------------------------------------
43337 -- 4219869 Business Flow
43338 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43339 -- Prior Entry. Currently, the following code is always generated.
43340 ------------------------------------------------------------------------------------------------
43341 -- No ValidateCurrentLine for business flow method of Prior Entry
43342
43343 ------------------------------------------------------------------------------------
43344 -- 4219869 Business Flow
43345 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43346 ------------------------------------------------------------------------------------
43347 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43348
43349 ----------------------------------------------------------------------------------
43350 -- 4219869 Business Flow
43351 -- Update journal entry status -- Need to generate this within IF <condition>
43352 ----------------------------------------------------------------------------------
43353 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43354 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43355 ,p_balance_type_code => l_balance_type_code
43356 );
43357
43358 -------------------------------------------------------------------------------------------
43359 -- 4262811 - Generate the Accrual Reversal lines
43360 -------------------------------------------------------------------------------------------
43361 BEGIN
43362 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43363 (g_array_event(p_event_id).array_value_num('header_index'));
43364 IF l_acc_rev_flag IS NULL THEN
43365 l_acc_rev_flag := 'N';
43366 END IF;
43367 EXCEPTION
43368 WHEN OTHERS THEN
43369 l_acc_rev_flag := 'N';
43370 END;
43371 --
43372 IF (l_acc_rev_flag = 'Y') THEN
43373
43374 -- 4645092 ------------------------------------------------------------------------------
43375 -- To allow MPA report to determine if it should generate report process
43376 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43377 ------------------------------------------------------------------------------------------
43378
43379 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43380 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43381
43382 --
43383 -- Update the line information that should be overwritten
43384 --
43385 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43386 p_header_num => 1);
43387 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43388
43389 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43390
43391 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43392 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43393 END IF;
43394
43395 --
43396 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43397 --
43398 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43399 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43400 ELSE
43401 ---------------------------------------------------------------------------------------------------
43402 -- 4262811a Switch Sign
43403 ---------------------------------------------------------------------------------------------------
43404 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43405 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43406 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43407 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43408 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43409 -- 5132302
43410 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43411 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43412
43413 END IF;
43414
43415 -- 4955764
43416 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43417 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43418
43419
43420 XLA_AE_LINES_PKG.ValidateCurrentLine;
43421 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43422
43423 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43424 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43425 ,p_balance_type_code => l_balance_type_code);
43426
43427 END IF;
43428
43429 -----------------------------------------------------------------------------------------
43430 -- 4262811 Multiperiod Accounting
43431 -----------------------------------------------------------------------------------------
43432 -- No MPA option is assigned.
43433
43434
43435 END IF;
43436 END IF;
43437 --
43438
43439 --
43440 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43441 trace
43442 (p_msg => 'END of AcctLineType_79'
43443 ,p_level => C_LEVEL_PROCEDURE
43444 ,p_module => l_log_module);
43445 END IF;
43446 --
43447 EXCEPTION
43448 WHEN xla_exceptions_pkg.application_exception THEN
43449 RAISE;
43450 WHEN OTHERS THEN
43451 xla_exceptions_pkg.raise_message
43452 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_79');
43453 END AcctLineType_79;
43454 --
43455
43456 ---------------------------------------
43457 --
43458 -- PRIVATE FUNCTION
43459 -- AcctLineType_80
43460 --
43461 ---------------------------------------
43462 PROCEDURE AcctLineType_80 (
43463 p_application_id IN NUMBER
43464 ,p_event_id IN NUMBER
43465 ,p_calculate_acctd_flag IN VARCHAR2
43466 ,p_calculate_g_l_flag IN VARCHAR2
43467 ,p_actual_flag IN OUT VARCHAR2
43468 ,p_balance_type_code OUT VARCHAR2
43469 ,p_gain_or_loss_ref OUT VARCHAR2
43470
43471 --Budget Account
43472 , p_source_9 IN NUMBER
43473 --Main Or Backing Code
43474 , p_source_13 IN VARCHAR2
43475 --Accounting Reversal Flag
43476 , p_source_15 IN VARCHAR2
43477 --Distribution Link Type
43478 , p_source_17 IN VARCHAR2
43479 --PO Distribution Identifier
43480 , p_source_19 IN NUMBER
43481 --PO Header Identifier
43482 , p_source_20 IN NUMBER
43483 --Applied To Application Identifier
43484 , p_source_21 IN NUMBER
43485 --Applied To Distribution Link Type
43486 , p_source_22 IN VARCHAR2
43487 --Applied To Entity Code
43488 , p_source_23 IN VARCHAR2
43489 --Applied To Distribution Identifier 1
43490 , p_source_24 IN NUMBER
43491 --Applied To Header Identifier 1
43492 , p_source_25 IN NUMBER
43493 --Entered Amount
43494 , p_source_26 IN NUMBER
43495 --Currency Code
43496 , p_source_27 IN VARCHAR2
43497 --Accounted Amount
43498 , p_source_28 IN NUMBER
43499 --PO Encumbrance Upgrade Option
43500 , p_source_29 IN VARCHAR2
43501 --JFMIP Reference
43502 , p_source_31 IN VARCHAR2
43503 --PO Upgrade Encumbrance Type Identifier
43504 , p_source_32 IN NUMBER
43505 --Allocated to Main Document Distribution Type
43506 , p_source_33 IN VARCHAR2
43507 --Allocated to Main Document Distribution Identifier
43508 , p_source_34 IN NUMBER
43509 )
43510 IS
43511
43512 l_component_type VARCHAR2(80);
43513 l_component_code VARCHAR2(30);
43514 l_component_type_code VARCHAR2(1);
43515 l_component_appl_id INTEGER;
43516 l_amb_context_code VARCHAR2(30);
43517 l_entity_code VARCHAR2(30);
43518 l_event_class_code VARCHAR2(30);
43519 l_ae_header_id NUMBER;
43520 l_event_type_code VARCHAR2(30);
43521 l_line_definition_code VARCHAR2(30);
43525 l_segment VARCHAR2(30);
43522 l_line_definition_owner_code VARCHAR2(1);
43523 --
43524 -- adr variables
43526 l_ccid NUMBER;
43527 l_adr_transaction_coa_id NUMBER;
43528 l_adr_accounting_coa_id NUMBER;
43529 l_adr_flexfield_segment_code VARCHAR2(30);
43530 l_adr_flex_value_set_id NUMBER;
43531 l_adr_value_type_code VARCHAR2(30);
43532 l_adr_value_combination_id NUMBER;
43533 l_adr_value_segment_code VARCHAR2(30);
43534
43535 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43536 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43537 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43538 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43539
43540 -- 4262811 Variables ------------------------------------------------------------------------------------------
43541 l_entered_amt_idx NUMBER;
43542 l_accted_amt_idx NUMBER;
43543 l_acc_rev_flag VARCHAR2(1);
43544 l_accrual_line_num NUMBER;
43545 l_tmp_amt NUMBER;
43546 l_acc_rev_natural_side_code VARCHAR2(1);
43547
43548 l_num_entries NUMBER;
43549 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43550 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43551 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43552 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43553 l_recog_line_1 NUMBER;
43554 l_recog_line_2 NUMBER;
43555
43556 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43557 l_bflow_applied_to_amt NUMBER; -- 5132302
43558 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43559
43560 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43561
43562 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43563 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43564
43565 ---------------------------------------------------------------------------------------------------------------
43566
43567
43568 --
43569 -- bulk performance
43570 --
43571 l_balance_type_code VARCHAR2(1);
43572 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43573 l_log_module VARCHAR2(240);
43574
43575 --
43576 -- Upgrade strategy
43577 --
43578 l_actual_upg_option VARCHAR2(1);
43579 l_enc_upg_option VARCHAR2(1);
43580
43581 --
43582 BEGIN
43583 --
43584 IF g_log_enabled THEN
43585 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
43586 END IF;
43587 --
43588 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43589
43590 trace
43591 (p_msg => 'BEGIN of AcctLineType_80'
43592 ,p_level => C_LEVEL_PROCEDURE
43593 ,p_module => l_log_module);
43594
43595 END IF;
43596 --
43597 l_component_type := 'AMB_JLT';
43598 l_component_code := 'FV_REQ_RELIEVE_CR';
43599 l_component_type_code := 'S';
43600 l_component_appl_id := 201;
43601 l_amb_context_code := 'DEFAULT';
43602 l_entity_code := 'PURCHASE_ORDER';
43603 l_event_class_code := 'PO_PA';
43604 l_event_type_code := 'PO_PA_ALL';
43605 l_line_definition_owner_code := 'S';
43606 l_line_definition_code := 'FV_PO_ALL';
43607 --
43608 l_balance_type_code := 'A';
43609 l_segment := NULL;
43610 l_ccid := NULL;
43611 l_adr_transaction_coa_id := NULL;
43612 l_adr_accounting_coa_id := NULL;
43613 l_adr_flexfield_segment_code := NULL;
43614 l_adr_flex_value_set_id := NULL;
43615 l_adr_value_type_code := NULL;
43616 l_adr_value_combination_id := NULL;
43617 l_adr_value_segment_code := NULL;
43618
43619 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
43620 l_bflow_class_code := 'FV_REQ_DR'; -- 4219869 Business Flow
43621 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
43622 l_budgetary_control_flag := 'Y';
43623
43624 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43625 l_bflow_applied_to_amt := NULL; -- 5132302
43626 l_entered_amt_idx := NULL; -- 4262811
43627 l_accted_amt_idx := NULL; -- 4262811
43628 l_acc_rev_flag := NULL; -- 4262811
43629 l_accrual_line_num := NULL; -- 4262811
43630 l_tmp_amt := NULL; -- 4262811
43631 --
43632
43633 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43634 l_balance_type_code <> 'B' THEN
43635 IF NVL(
43636 xla_ae_sources_pkg.GetSystemSourceChar(
43637 p_source_code => 'XLA_EVENT_TYPE_CODE'
43638 , p_source_type_code => 'Y'
43639 , p_source_application_id => 602
43640 ),'
43641 ') = 'PO_PA_RESERVED' AND
43642 NVL(p_source_13,'
43643 ') = 'B_REQ'
43644 THEN
43645
43646 --
43647 XLA_AE_LINES_PKG.SetNewLine;
43648
43649 p_balance_type_code := l_balance_type_code;
43650 -- set the flag so later we will know whether the gain loss line needs to be created
43651
43655
43652 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43653 p_actual_flag :='A';
43654 END IF;
43656 --
43657 -- bulk performance
43658 --
43659 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43660 p_header_num => 0); -- 4262811
43661 --
43662 -- set accounting line options
43663 --
43664 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43665 p_natural_side_code => 'C'
43666 , p_gain_or_loss_flag => 'N'
43667 , p_gl_transfer_mode_code => 'S'
43668 , p_acct_entry_type_code => 'A'
43669 , p_switch_side_flag => 'N'
43670 , p_merge_duplicate_code => 'N'
43671 );
43672 --
43673 l_acc_rev_natural_side_code := 'D'; -- 4262811
43674 --
43675 --
43676 -- set accounting line type info
43677 --
43678 xla_ae_lines_pkg.SetAcctLineType
43679 (p_component_type => l_component_type
43680 ,p_event_type_code => l_event_type_code
43681 ,p_line_definition_owner_code => l_line_definition_owner_code
43682 ,p_line_definition_code => l_line_definition_code
43683 ,p_accounting_line_code => l_component_code
43684 ,p_accounting_line_type_code => l_component_type_code
43685 ,p_accounting_line_appl_id => l_component_appl_id
43686 ,p_amb_context_code => l_amb_context_code
43687 ,p_entity_code => l_entity_code
43688 ,p_event_class_code => l_event_class_code);
43689 --
43690 -- set accounting class
43691 --
43692 xla_ae_lines_pkg.SetAcctClass(
43693 p_accounting_class_code => 'PURCHASE_ORDER'
43694 , p_ae_header_id => l_ae_header_id
43695 );
43696
43697 --
43698 -- set rounding class
43699 --
43700 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43701 'PURCHASE_ORDER';
43702
43703 --
43704 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43705 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43706 --
43707 -- bulk performance
43708 --
43709 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43710
43711 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43712 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43713
43714 -- 4955764
43715 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43716 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43717
43718 -- 4458381 Public Sector Enh
43719
43720 --
43721 -- set accounting attributes for the line type
43722 --
43723 l_entered_amt_idx := 23;
43724 l_accted_amt_idx := 25;
43725 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43726 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43727 l_rec_acct_attrs.array_char_value(1) := p_source_15;
43728 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
43729 l_rec_acct_attrs.array_num_value(2) :=
43730 xla_ae_sources_pkg.GetSystemSourceNum(
43731 p_source_code => 'XLA_EVENT_APPL_ID'
43732 , p_source_type_code => 'Y'
43733 , p_source_application_id => 602
43734 );
43735 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
43736 l_rec_acct_attrs.array_char_value(3) := p_source_33;
43737 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
43738 l_rec_acct_attrs.array_char_value(4) :=
43739 xla_ae_sources_pkg.GetSystemSourceChar(
43740 p_source_code => 'XLA_ENTITY_CODE'
43741 , p_source_type_code => 'Y'
43742 , p_source_application_id => 602
43743 );
43744 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
43745 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
43746 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
43747 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
43748 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
43749 l_rec_acct_attrs.array_num_value(7) := p_source_21;
43750 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43751 l_rec_acct_attrs.array_char_value(8) := p_source_22;
43752 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
43753 l_rec_acct_attrs.array_char_value(9) := p_source_23;
43754 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
43755 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
43756 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43757 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
43758 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
43759 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
43760 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
43761 l_rec_acct_attrs.array_char_value(13) := p_source_17;
43762 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
43763 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
43764 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
43765 l_rec_acct_attrs.array_num_value(15) := p_source_26;
43766 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
43767 l_rec_acct_attrs.array_char_value(16) := p_source_27;
43768 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
43769 l_rec_acct_attrs.array_num_value(17) := p_source_28;
43770 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
43771 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
43772 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
43773 l_rec_acct_attrs.array_num_value(19) := p_source_26;
43774 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
43775 l_rec_acct_attrs.array_char_value(20) := p_source_27;
43776 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
43777 l_rec_acct_attrs.array_num_value(21) := p_source_28;
43778 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
43779 l_rec_acct_attrs.array_char_value(22) := p_source_29;
43780 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
43781 l_rec_acct_attrs.array_num_value(23) := p_source_26;
43782 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
43783 l_rec_acct_attrs.array_char_value(24) := p_source_27;
43784 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
43785 l_rec_acct_attrs.array_num_value(25) := p_source_28;
43786 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
43787 l_rec_acct_attrs.array_char_value(26) := p_source_31;
43788 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
43789 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
43790 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
43791 l_rec_acct_attrs.array_char_value(28) := p_source_22;
43792 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
43793 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
43794 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
43795 l_rec_acct_attrs.array_num_value(30) := p_source_32;
43796 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
43797 l_rec_acct_attrs.array_num_value(31) := p_source_32;
43798
43799 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43800 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43801
43802 ---------------------------------------------------------------------------------------------------------------
43803 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43804 ---------------------------------------------------------------------------------------------------------------
43805 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43806
43807 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43808 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43809
43810 IF xla_accounting_cache_pkg.GetValueChar
43811 (p_source_code => 'LEDGER_CATEGORY_CODE'
43812 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43813 AND l_bflow_method_code = 'PRIOR_ENTRY'
43814 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43815 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43816 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43817 )
43818 THEN
43819 xla_ae_lines_pkg.BflowUpgEntry
43820 (p_business_method_code => l_bflow_method_code
43821 ,p_business_class_code => l_bflow_class_code
43822 ,p_balance_type => l_balance_type_code);
43823 ELSE
43824 NULL;
43825 XLA_AE_LINES_PKG.business_flow_validation(
43826 p_business_method_code => l_bflow_method_code
43827 ,p_business_class_code => l_bflow_class_code
43828 ,p_inherit_description_flag => l_inherit_desc_flag);
43829 END IF;
43830
43831 --
43832 -- call analytical criteria
43833 --
43834 -- Inherited Analytical Criteria for business flow method of Prior Entry.
43835 --
43836 -- call description
43837 --
43838 -- No description or it is inherited.
43839 --
43840 -- call ADRs
43841 -- Bug 4922099
43842 --
43843 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43844 (NVL(l_actual_upg_option, 'N') = 'O') OR
43845 (NVL(l_enc_upg_option, 'N') = 'O')
43846 )
43847 THEN
43848 NULL;
43849 --
43850 --
43851
43852 --
43853 --
43854 END IF;
43855 --
43856 -- Bug 4922099
43857 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43858 (NVL(l_enc_upg_option, 'N') = 'O')
43859 ) AND
43860 (l_bflow_method_code = 'PRIOR_ENTRY')
43861 )
43862 THEN
43863 IF
43864 --
43865 1 = 1
43866 --
43867 THEN
43868 xla_accounting_err_pkg.build_message
43869 (p_appli_s_name => 'XLA'
43870 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43871 ,p_token_1 => 'LINE_NUMBER'
43872 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43873 ,p_token_2 => 'LINE_TYPE_NAME'
43874 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43875 l_component_type
43876 ,l_component_code
43877 ,l_component_type_code
43878 ,l_component_appl_id
43879 ,l_amb_context_code
43880 ,l_entity_code
43881 ,l_event_class_code
43882 )
43883 ,p_token_3 => 'OWNER'
43884 ,p_value_3 => xla_lookups_pkg.get_meaning(
43885 p_lookup_type => 'XLA_OWNER_TYPE'
43886 ,p_lookup_code => l_component_type_code
43887 )
43888 ,p_token_4 => 'PRODUCT_NAME'
43889 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43890 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43891 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43892 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43893 ,p_ae_header_id => NULL
43894 );
43895
43896 IF (C_LEVEL_ERROR>= g_log_level) THEN
43897 trace
43898 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43899 ,p_level => C_LEVEL_ERROR
43900 ,p_module => l_log_module);
43901 END IF;
43902 END IF;
43903 END IF;
43904 --
43905 --
43906 ------------------------------------------------------------------------------------------------
43907 -- 4219869 Business Flow
43908 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43909 -- Prior Entry. Currently, the following code is always generated.
43910 ------------------------------------------------------------------------------------------------
43911 -- No ValidateCurrentLine for business flow method of Prior Entry
43912
43913 ------------------------------------------------------------------------------------
43914 -- 4219869 Business Flow
43918
43915 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43916 ------------------------------------------------------------------------------------
43917 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43919 ----------------------------------------------------------------------------------
43920 -- 4219869 Business Flow
43921 -- Update journal entry status -- Need to generate this within IF <condition>
43922 ----------------------------------------------------------------------------------
43923 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43924 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43925 ,p_balance_type_code => l_balance_type_code
43926 );
43927
43928 -------------------------------------------------------------------------------------------
43929 -- 4262811 - Generate the Accrual Reversal lines
43930 -------------------------------------------------------------------------------------------
43931 BEGIN
43932 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43933 (g_array_event(p_event_id).array_value_num('header_index'));
43934 IF l_acc_rev_flag IS NULL THEN
43935 l_acc_rev_flag := 'N';
43936 END IF;
43937 EXCEPTION
43938 WHEN OTHERS THEN
43939 l_acc_rev_flag := 'N';
43940 END;
43941 --
43942 IF (l_acc_rev_flag = 'Y') THEN
43943
43944 -- 4645092 ------------------------------------------------------------------------------
43945 -- To allow MPA report to determine if it should generate report process
43946 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43947 ------------------------------------------------------------------------------------------
43948
43949 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43950 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43951
43952 --
43953 -- Update the line information that should be overwritten
43954 --
43955 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43956 p_header_num => 1);
43957 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43958
43959 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43960
43961 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43962 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43963 END IF;
43964
43965 --
43966 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43967 --
43968 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43969 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43970 ELSE
43971 ---------------------------------------------------------------------------------------------------
43972 -- 4262811a Switch Sign
43973 ---------------------------------------------------------------------------------------------------
43974 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43975 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43976 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43977 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43978 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43979 -- 5132302
43980 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43981 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43982
43983 END IF;
43984
43985 -- 4955764
43986 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43987 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43988
43989
43990 XLA_AE_LINES_PKG.ValidateCurrentLine;
43991 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43992
43993 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43994 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43995 ,p_balance_type_code => l_balance_type_code);
43996
43997 END IF;
43998
43999 -----------------------------------------------------------------------------------------
44000 -- 4262811 Multiperiod Accounting
44001 -----------------------------------------------------------------------------------------
44002 -- No MPA option is assigned.
44003
44004
44005 END IF;
44006 END IF;
44007 --
44008
44009 --
44010 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44011 trace
44012 (p_msg => 'END of AcctLineType_80'
44013 ,p_level => C_LEVEL_PROCEDURE
44014 ,p_module => l_log_module);
44015 END IF;
44016 --
44017 EXCEPTION
44018 WHEN xla_exceptions_pkg.application_exception THEN
44019 RAISE;
44020 WHEN OTHERS THEN
44021 xla_exceptions_pkg.raise_message
44022 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_80');
44023 END AcctLineType_80;
44024 --
44025
44026 ---------------------------------------
44027 --
44028 -- PRIVATE FUNCTION
44032 PROCEDURE AcctLineType_81 (
44029 -- AcctLineType_81
44030 --
44031 ---------------------------------------
44033 p_application_id IN NUMBER
44034 ,p_event_id IN NUMBER
44035 ,p_calculate_acctd_flag IN VARCHAR2
44036 ,p_calculate_g_l_flag IN VARCHAR2
44037 ,p_actual_flag IN OUT VARCHAR2
44038 ,p_balance_type_code OUT VARCHAR2
44039 ,p_gain_or_loss_ref OUT VARCHAR2
44040
44041 --Budget Account
44042 , p_source_9 IN NUMBER
44043 --Main Or Backing Code
44044 , p_source_13 IN VARCHAR2
44045 --Accounting Reversal Flag
44046 , p_source_15 IN VARCHAR2
44047 --Distribution Link Type
44048 , p_source_17 IN VARCHAR2
44049 --PO Distribution Identifier
44050 , p_source_19 IN NUMBER
44051 --PO Header Identifier
44052 , p_source_20 IN NUMBER
44053 --Applied To Application Identifier
44054 , p_source_21 IN NUMBER
44055 --Applied To Distribution Link Type
44056 , p_source_22 IN VARCHAR2
44057 --Applied To Entity Code
44058 , p_source_23 IN VARCHAR2
44059 --Applied To Distribution Identifier 1
44060 , p_source_24 IN NUMBER
44061 --Applied To Header Identifier 1
44062 , p_source_25 IN NUMBER
44063 --Entered Amount
44064 , p_source_26 IN NUMBER
44065 --Currency Code
44066 , p_source_27 IN VARCHAR2
44067 --Accounted Amount
44068 , p_source_28 IN NUMBER
44069 --PO Encumbrance Upgrade Option
44070 , p_source_29 IN VARCHAR2
44071 --JFMIP Reference
44072 , p_source_31 IN VARCHAR2
44073 --PO Upgrade Encumbrance Type Identifier
44074 , p_source_32 IN NUMBER
44075 --Allocated to Main Document Distribution Type
44076 , p_source_33 IN VARCHAR2
44077 --Allocated to Main Document Distribution Identifier
44078 , p_source_34 IN NUMBER
44079 )
44080 IS
44081
44082 l_component_type VARCHAR2(80);
44083 l_component_code VARCHAR2(30);
44084 l_component_type_code VARCHAR2(1);
44085 l_component_appl_id INTEGER;
44086 l_amb_context_code VARCHAR2(30);
44087 l_entity_code VARCHAR2(30);
44088 l_event_class_code VARCHAR2(30);
44089 l_ae_header_id NUMBER;
44090 l_event_type_code VARCHAR2(30);
44091 l_line_definition_code VARCHAR2(30);
44092 l_line_definition_owner_code VARCHAR2(1);
44093 --
44094 -- adr variables
44095 l_segment VARCHAR2(30);
44096 l_ccid NUMBER;
44097 l_adr_transaction_coa_id NUMBER;
44098 l_adr_accounting_coa_id NUMBER;
44099 l_adr_flexfield_segment_code VARCHAR2(30);
44100 l_adr_flex_value_set_id NUMBER;
44101 l_adr_value_type_code VARCHAR2(30);
44102 l_adr_value_combination_id NUMBER;
44103 l_adr_value_segment_code VARCHAR2(30);
44104
44105 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44106 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44107 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44108 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44109
44110 -- 4262811 Variables ------------------------------------------------------------------------------------------
44111 l_entered_amt_idx NUMBER;
44112 l_accted_amt_idx NUMBER;
44113 l_acc_rev_flag VARCHAR2(1);
44114 l_accrual_line_num NUMBER;
44115 l_tmp_amt NUMBER;
44116 l_acc_rev_natural_side_code VARCHAR2(1);
44117
44118 l_num_entries NUMBER;
44119 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44120 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44121 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44122 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44123 l_recog_line_1 NUMBER;
44124 l_recog_line_2 NUMBER;
44125
44126 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44127 l_bflow_applied_to_amt NUMBER; -- 5132302
44128 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44129
44130 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44131
44132 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44133 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44134
44135 ---------------------------------------------------------------------------------------------------------------
44136
44137
44138 --
44139 -- bulk performance
44140 --
44141 l_balance_type_code VARCHAR2(1);
44142 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44143 l_log_module VARCHAR2(240);
44144
44145 --
44146 -- Upgrade strategy
44147 --
44148 l_actual_upg_option VARCHAR2(1);
44149 l_enc_upg_option VARCHAR2(1);
44150
44151 --
44152 BEGIN
44153 --
44154 IF g_log_enabled THEN
44155 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
44156 END IF;
44157 --
44158 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44159
44160 trace
44161 (p_msg => 'BEGIN of AcctLineType_81'
44162 ,p_level => C_LEVEL_PROCEDURE
44163 ,p_module => l_log_module);
44164
44165 END IF;
44166 --
44167 l_component_type := 'AMB_JLT';
44168 l_component_code := 'FV_REQ_RELIEVE_DR';
44169 l_component_type_code := 'S';
44170 l_component_appl_id := 201;
44171 l_amb_context_code := 'DEFAULT';
44172 l_entity_code := 'PURCHASE_ORDER';
44173 l_event_class_code := 'PO_PA';
44174 l_event_type_code := 'PO_PA_ALL';
44175 l_line_definition_owner_code := 'S';
44176 l_line_definition_code := 'FV_PO_ALL';
44177 --
44178 l_balance_type_code := 'A';
44179 l_segment := NULL;
44180 l_ccid := NULL;
44181 l_adr_transaction_coa_id := NULL;
44182 l_adr_accounting_coa_id := NULL;
44183 l_adr_flexfield_segment_code := NULL;
44184 l_adr_flex_value_set_id := NULL;
44185 l_adr_value_type_code := NULL;
44186 l_adr_value_combination_id := NULL;
44187 l_adr_value_segment_code := NULL;
44188
44189 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
44190 l_bflow_class_code := 'FV_REQ_CR'; -- 4219869 Business Flow
44191 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
44192 l_budgetary_control_flag := 'Y';
44193
44194 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44195 l_bflow_applied_to_amt := NULL; -- 5132302
44196 l_entered_amt_idx := NULL; -- 4262811
44197 l_accted_amt_idx := NULL; -- 4262811
44198 l_acc_rev_flag := NULL; -- 4262811
44199 l_accrual_line_num := NULL; -- 4262811
44200 l_tmp_amt := NULL; -- 4262811
44201 --
44202
44203 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44204 l_balance_type_code <> 'B' THEN
44205 IF NVL(
44209 , p_source_application_id => 602
44206 xla_ae_sources_pkg.GetSystemSourceChar(
44207 p_source_code => 'XLA_EVENT_TYPE_CODE'
44208 , p_source_type_code => 'Y'
44210 ),'
44211 ') = 'PO_PA_RESERVED' AND
44212 NVL(p_source_13,'
44213 ') = 'B_REQ'
44214 THEN
44215
44216 --
44217 XLA_AE_LINES_PKG.SetNewLine;
44218
44219 p_balance_type_code := l_balance_type_code;
44220 -- set the flag so later we will know whether the gain loss line needs to be created
44221
44222 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44223 p_actual_flag :='A';
44224 END IF;
44225
44226 --
44227 -- bulk performance
44228 --
44229 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44230 p_header_num => 0); -- 4262811
44231 --
44232 -- set accounting line options
44233 --
44234 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44235 p_natural_side_code => 'D'
44236 , p_gain_or_loss_flag => 'N'
44237 , p_gl_transfer_mode_code => 'S'
44238 , p_acct_entry_type_code => 'A'
44239 , p_switch_side_flag => 'N'
44240 , p_merge_duplicate_code => 'N'
44241 );
44242 --
44243 l_acc_rev_natural_side_code := 'C'; -- 4262811
44244 --
44245 --
44246 -- set accounting line type info
44247 --
44248 xla_ae_lines_pkg.SetAcctLineType
44249 (p_component_type => l_component_type
44250 ,p_event_type_code => l_event_type_code
44251 ,p_line_definition_owner_code => l_line_definition_owner_code
44252 ,p_line_definition_code => l_line_definition_code
44253 ,p_accounting_line_code => l_component_code
44254 ,p_accounting_line_type_code => l_component_type_code
44255 ,p_accounting_line_appl_id => l_component_appl_id
44256 ,p_amb_context_code => l_amb_context_code
44257 ,p_entity_code => l_entity_code
44258 ,p_event_class_code => l_event_class_code);
44259 --
44260 -- set accounting class
44261 --
44262 xla_ae_lines_pkg.SetAcctClass(
44263 p_accounting_class_code => 'PURCHASE_ORDER'
44264 , p_ae_header_id => l_ae_header_id
44265 );
44266
44267 --
44268 -- set rounding class
44269 --
44270 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44271 'PURCHASE_ORDER';
44272
44273 --
44274 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44275 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44276 --
44277 -- bulk performance
44278 --
44279 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44280
44281 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44282 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44283
44284 -- 4955764
44285 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44286 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44287
44288 -- 4458381 Public Sector Enh
44289
44290 --
44291 -- set accounting attributes for the line type
44292 --
44293 l_entered_amt_idx := 23;
44294 l_accted_amt_idx := 25;
44295 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44296 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44297 l_rec_acct_attrs.array_char_value(1) := p_source_15;
44298 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44299 l_rec_acct_attrs.array_num_value(2) :=
44300 xla_ae_sources_pkg.GetSystemSourceNum(
44301 p_source_code => 'XLA_EVENT_APPL_ID'
44302 , p_source_type_code => 'Y'
44303 , p_source_application_id => 602
44304 );
44305 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44306 l_rec_acct_attrs.array_char_value(3) := p_source_33;
44307 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44308 l_rec_acct_attrs.array_char_value(4) :=
44309 xla_ae_sources_pkg.GetSystemSourceChar(
44310 p_source_code => 'XLA_ENTITY_CODE'
44311 , p_source_type_code => 'Y'
44312 , p_source_application_id => 602
44313 );
44314 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44315 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_34);
44316 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44317 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
44318 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44319 l_rec_acct_attrs.array_num_value(7) := p_source_21;
44320 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44321 l_rec_acct_attrs.array_char_value(8) := p_source_22;
44322 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44323 l_rec_acct_attrs.array_char_value(9) := p_source_23;
44324 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44325 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
44326 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44327 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
44328 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44329 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_19);
44330 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44334 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
44331 l_rec_acct_attrs.array_char_value(13) := p_source_17;
44332 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
44333 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
44335 l_rec_acct_attrs.array_num_value(15) := p_source_26;
44336 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
44337 l_rec_acct_attrs.array_char_value(16) := p_source_27;
44338 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
44339 l_rec_acct_attrs.array_num_value(17) := p_source_28;
44340 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
44341 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
44342 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
44343 l_rec_acct_attrs.array_num_value(19) := p_source_26;
44344 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
44345 l_rec_acct_attrs.array_char_value(20) := p_source_27;
44346 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
44347 l_rec_acct_attrs.array_num_value(21) := p_source_28;
44348 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
44349 l_rec_acct_attrs.array_char_value(22) := p_source_29;
44350 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
44351 l_rec_acct_attrs.array_num_value(23) := p_source_26;
44352 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
44353 l_rec_acct_attrs.array_char_value(24) := p_source_27;
44354 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
44355 l_rec_acct_attrs.array_num_value(25) := p_source_28;
44356 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
44357 l_rec_acct_attrs.array_char_value(26) := p_source_31;
44358 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
44359 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
44360 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
44361 l_rec_acct_attrs.array_char_value(28) := p_source_22;
44362 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
44363 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_19);
44364 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
44365 l_rec_acct_attrs.array_num_value(30) := p_source_32;
44366 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
44367 l_rec_acct_attrs.array_num_value(31) := p_source_32;
44368
44369 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44370 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44371
44372 ---------------------------------------------------------------------------------------------------------------
44373 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44374 ---------------------------------------------------------------------------------------------------------------
44375 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44376
44377 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44378 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44379
44380 IF xla_accounting_cache_pkg.GetValueChar
44381 (p_source_code => 'LEDGER_CATEGORY_CODE'
44382 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44383 AND l_bflow_method_code = 'PRIOR_ENTRY'
44384 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44385 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44386 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44387 )
44388 THEN
44389 xla_ae_lines_pkg.BflowUpgEntry
44390 (p_business_method_code => l_bflow_method_code
44391 ,p_business_class_code => l_bflow_class_code
44392 ,p_balance_type => l_balance_type_code);
44393 ELSE
44394 NULL;
44395 XLA_AE_LINES_PKG.business_flow_validation(
44396 p_business_method_code => l_bflow_method_code
44397 ,p_business_class_code => l_bflow_class_code
44398 ,p_inherit_description_flag => l_inherit_desc_flag);
44399 END IF;
44400
44401 --
44402 -- call analytical criteria
44403 --
44404 -- Inherited Analytical Criteria for business flow method of Prior Entry.
44405 --
44406 -- call description
44407 --
44408 -- No description or it is inherited.
44409 --
44410 -- call ADRs
44411 -- Bug 4922099
44412 --
44413 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44414 (NVL(l_actual_upg_option, 'N') = 'O') OR
44415 (NVL(l_enc_upg_option, 'N') = 'O')
44416 )
44417 THEN
44418 NULL;
44419 --
44420 --
44421
44422 --
44423 --
44424 END IF;
44425 --
44426 -- Bug 4922099
44427 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44428 (NVL(l_enc_upg_option, 'N') = 'O')
44429 ) AND
44430 (l_bflow_method_code = 'PRIOR_ENTRY')
44431 )
44432 THEN
44433 IF
44434 --
44435 1 = 1
44436 --
44437 THEN
44438 xla_accounting_err_pkg.build_message
44439 (p_appli_s_name => 'XLA'
44440 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44441 ,p_token_1 => 'LINE_NUMBER'
44442 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44443 ,p_token_2 => 'LINE_TYPE_NAME'
44444 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44445 l_component_type
44446 ,l_component_code
44447 ,l_component_type_code
44448 ,l_component_appl_id
44449 ,l_amb_context_code
44450 ,l_entity_code
44451 ,l_event_class_code
44452 )
44453 ,p_token_3 => 'OWNER'
44454 ,p_value_3 => xla_lookups_pkg.get_meaning(
44455 p_lookup_type => 'XLA_OWNER_TYPE'
44456 ,p_lookup_code => l_component_type_code
44457 )
44458 ,p_token_4 => 'PRODUCT_NAME'
44459 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44460 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44461 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44462 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44463 ,p_ae_header_id => NULL
44464 );
44465
44466 IF (C_LEVEL_ERROR>= g_log_level) THEN
44467 trace
44468 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44469 ,p_level => C_LEVEL_ERROR
44470 ,p_module => l_log_module);
44471 END IF;
44472 END IF;
44473 END IF;
44474 --
44475 --
44476 ------------------------------------------------------------------------------------------------
44477 -- 4219869 Business Flow
44478 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44479 -- Prior Entry. Currently, the following code is always generated.
44480 ------------------------------------------------------------------------------------------------
44481 -- No ValidateCurrentLine for business flow method of Prior Entry
44482
44483 ------------------------------------------------------------------------------------
44484 -- 4219869 Business Flow
44485 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44486 ------------------------------------------------------------------------------------
44487 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44488
44489 ----------------------------------------------------------------------------------
44490 -- 4219869 Business Flow
44491 -- Update journal entry status -- Need to generate this within IF <condition>
44492 ----------------------------------------------------------------------------------
44493 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44494 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44495 ,p_balance_type_code => l_balance_type_code
44496 );
44497
44498 -------------------------------------------------------------------------------------------
44499 -- 4262811 - Generate the Accrual Reversal lines
44500 -------------------------------------------------------------------------------------------
44501 BEGIN
44502 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44503 (g_array_event(p_event_id).array_value_num('header_index'));
44504 IF l_acc_rev_flag IS NULL THEN
44505 l_acc_rev_flag := 'N';
44506 END IF;
44507 EXCEPTION
44508 WHEN OTHERS THEN
44509 l_acc_rev_flag := 'N';
44510 END;
44511 --
44512 IF (l_acc_rev_flag = 'Y') THEN
44513
44514 -- 4645092 ------------------------------------------------------------------------------
44515 -- To allow MPA report to determine if it should generate report process
44516 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44517 ------------------------------------------------------------------------------------------
44518
44519 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44520 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44521
44522 --
44523 -- Update the line information that should be overwritten
44524 --
44525 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44526 p_header_num => 1);
44527 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44528
44529 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44530
44531 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44532 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44533 END IF;
44534
44535 --
44536 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44537 --
44538 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44539 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44540 ELSE
44541 ---------------------------------------------------------------------------------------------------
44542 -- 4262811a Switch Sign
44543 ---------------------------------------------------------------------------------------------------
44544 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44545 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44546 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44547 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44548 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44549 -- 5132302
44550 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44551 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44552
44553 END IF;
44554
44555 -- 4955764
44556 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44557 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44558
44559
44560 XLA_AE_LINES_PKG.ValidateCurrentLine;
44561 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44562
44563 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44564 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44565 ,p_balance_type_code => l_balance_type_code);
44566
44567 END IF;
44568
44569 -----------------------------------------------------------------------------------------
44570 -- 4262811 Multiperiod Accounting
44571 -----------------------------------------------------------------------------------------
44572 -- No MPA option is assigned.
44573
44574
44575 END IF;
44576 END IF;
44577 --
44578
44579 --
44580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44581 trace
44582 (p_msg => 'END of AcctLineType_81'
44583 ,p_level => C_LEVEL_PROCEDURE
44584 ,p_module => l_log_module);
44585 END IF;
44586 --
44587 EXCEPTION
44588 WHEN xla_exceptions_pkg.application_exception THEN
44589 RAISE;
44590 WHEN OTHERS THEN
44591 xla_exceptions_pkg.raise_message
44592 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_81');
44593 END AcctLineType_81;
44594 --
44595
44596 ---------------------------------------
44597 --
44598 -- PRIVATE FUNCTION
44599 -- AcctLineType_82
44600 --
44601 ---------------------------------------
44602 PROCEDURE AcctLineType_82 (
44603 p_application_id IN NUMBER
44604 ,p_event_id IN NUMBER
44605 ,p_calculate_acctd_flag IN VARCHAR2
44606 ,p_calculate_g_l_flag IN VARCHAR2
44607 ,p_actual_flag IN OUT VARCHAR2
44608 ,p_balance_type_code OUT VARCHAR2
44609 ,p_gain_or_loss_ref OUT VARCHAR2
44610
44611 --Journal entry Line Description
44612 , p_source_3 IN VARCHAR2
44613 --Federal Fund Category
44614 , p_source_7 IN VARCHAR2
44615 --Budget Account
44616 , p_source_9 IN NUMBER
44617 --Main Or Backing Code
44621 --Distribution Link Type
44618 , p_source_13 IN VARCHAR2
44619 --Accounting Reversal Flag
44620 , p_source_15 IN VARCHAR2
44622 , p_source_17 IN VARCHAR2
44623 --Applied To Application Identifier
44624 , p_source_21 IN NUMBER
44625 --Applied To Distribution Link Type
44626 , p_source_22 IN VARCHAR2
44627 --Applied To Entity Code
44628 , p_source_23 IN VARCHAR2
44629 --Applied To Distribution Identifier 1
44630 , p_source_24 IN NUMBER
44631 --Applied To Header Identifier 1
44632 , p_source_25 IN NUMBER
44633 --Entered Amount
44634 , p_source_26 IN NUMBER
44635 --Currency Code
44636 , p_source_27 IN VARCHAR2
44637 --Accounted Amount
44638 , p_source_28 IN NUMBER
44639 --JFMIP Reference
44640 , p_source_31 IN VARCHAR2
44641 --Currency Conversion Date
44642 , p_source_35 IN DATE
44643 --Currency Conversion Rate
44644 , p_source_36 IN NUMBER
44645 --Currency Conversion Type
44646 , p_source_37 IN VARCHAR2
44647 --Requisition Distribution Identifier
44648 , p_source_43 IN NUMBER
44649 --Requisition Identifier
44650 , p_source_44 IN NUMBER
44651 --Requisition Encumbrance Upgrade Option
44652 , p_source_45 IN VARCHAR2
44653 --Requisition Upgrade Encumbrance Type Identifier
44654 , p_source_46 IN NUMBER
44655 --Adjustment Status
44656 , p_source_47 IN VARCHAR2
44657 )
44658 IS
44659
44660 l_component_type VARCHAR2(80);
44661 l_component_code VARCHAR2(30);
44662 l_component_type_code VARCHAR2(1);
44663 l_component_appl_id INTEGER;
44664 l_amb_context_code VARCHAR2(30);
44665 l_entity_code VARCHAR2(30);
44666 l_event_class_code VARCHAR2(30);
44667 l_ae_header_id NUMBER;
44668 l_event_type_code VARCHAR2(30);
44669 l_line_definition_code VARCHAR2(30);
44670 l_line_definition_owner_code VARCHAR2(1);
44671 --
44672 -- adr variables
44673 l_segment VARCHAR2(30);
44674 l_ccid NUMBER;
44675 l_adr_transaction_coa_id NUMBER;
44676 l_adr_accounting_coa_id NUMBER;
44677 l_adr_flexfield_segment_code VARCHAR2(30);
44678 l_adr_flex_value_set_id NUMBER;
44679 l_adr_value_type_code VARCHAR2(30);
44680 l_adr_value_combination_id NUMBER;
44681 l_adr_value_segment_code VARCHAR2(30);
44682
44683 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44684 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44685 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44686 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44687
44688 -- 4262811 Variables ------------------------------------------------------------------------------------------
44689 l_entered_amt_idx NUMBER;
44690 l_accted_amt_idx NUMBER;
44691 l_acc_rev_flag VARCHAR2(1);
44692 l_accrual_line_num NUMBER;
44693 l_tmp_amt NUMBER;
44694 l_acc_rev_natural_side_code VARCHAR2(1);
44695
44696 l_num_entries NUMBER;
44697 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44698 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44699 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44700 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44701 l_recog_line_1 NUMBER;
44702 l_recog_line_2 NUMBER;
44703
44704 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44705 l_bflow_applied_to_amt NUMBER; -- 5132302
44706 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44707
44708 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44709
44710 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44711 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44712
44713 ---------------------------------------------------------------------------------------------------------------
44714
44715
44716 --
44717 -- bulk performance
44718 --
44719 l_balance_type_code VARCHAR2(1);
44720 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44721 l_log_module VARCHAR2(240);
44722
44723 --
44724 -- Upgrade strategy
44725 --
44726 l_actual_upg_option VARCHAR2(1);
44727 l_enc_upg_option VARCHAR2(1);
44728
44729 --
44730 BEGIN
44731 --
44732 IF g_log_enabled THEN
44733 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
44734 END IF;
44735 --
44736 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44737
44738 trace
44739 (p_msg => 'BEGIN of AcctLineType_82'
44740 ,p_level => C_LEVEL_PROCEDURE
44741 ,p_module => l_log_module);
44742
44743 END IF;
44744 --
44745 l_component_type := 'AMB_JLT';
44746 l_component_code := 'FV_REQ_RESERVE_CR';
44747 l_component_type_code := 'S';
44748 l_component_appl_id := 201;
44749 l_amb_context_code := 'DEFAULT';
44750 l_entity_code := 'REQUISITION';
44751 l_event_class_code := 'REQUISITION';
44752 l_event_type_code := 'REQUISITION_ALL';
44753 l_line_definition_owner_code := 'S';
44757 l_segment := NULL;
44754 l_line_definition_code := 'FV_REQ_ALL';
44755 --
44756 l_balance_type_code := 'A';
44758 l_ccid := NULL;
44759 l_adr_transaction_coa_id := NULL;
44760 l_adr_accounting_coa_id := NULL;
44761 l_adr_flexfield_segment_code := NULL;
44762 l_adr_flex_value_set_id := NULL;
44763 l_adr_value_type_code := NULL;
44764 l_adr_value_combination_id := NULL;
44765 l_adr_value_segment_code := NULL;
44766
44767 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44768 l_bflow_class_code := 'FV_REQ_CR'; -- 4219869 Business Flow
44769 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44770 l_budgetary_control_flag := 'Y';
44771
44772 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44773 l_bflow_applied_to_amt := NULL; -- 5132302
44774 l_entered_amt_idx := NULL; -- 4262811
44775 l_accted_amt_idx := NULL; -- 4262811
44776 l_acc_rev_flag := NULL; -- 4262811
44777 l_accrual_line_num := NULL; -- 4262811
44778 l_tmp_amt := NULL; -- 4262811
44779 --
44780
44781 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44782 l_balance_type_code <> 'B' THEN
44783 IF (NVL(
44784 xla_ae_sources_pkg.GetSystemSourceChar(
44785 p_source_code => 'XLA_EVENT_TYPE_CODE'
44786 , p_source_type_code => 'Y'
44787 , p_source_application_id => 602
44788 ),'
44789 ') = 'REQ_RESERVED' OR
44790 NVL(
44791 xla_ae_sources_pkg.GetSystemSourceChar(
44792 p_source_code => 'XLA_EVENT_TYPE_CODE'
44793 , p_source_type_code => 'Y'
44794 , p_source_application_id => 602
44795 ),'
44796 ') = 'REQ_ADJUSTED' AND
44797 NVL(p_source_47,'
44798 ') = 'NEW') AND
44799 NVL(p_source_13,'
44800 ') = 'M'
44801 THEN
44802
44803 --
44804 XLA_AE_LINES_PKG.SetNewLine;
44805
44806 p_balance_type_code := l_balance_type_code;
44807 -- set the flag so later we will know whether the gain loss line needs to be created
44808
44809 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44810 p_actual_flag :='A';
44811 END IF;
44812
44813 --
44814 -- bulk performance
44815 --
44816 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44817 p_header_num => 0); -- 4262811
44818 --
44819 -- set accounting line options
44820 --
44821 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44822 p_natural_side_code => 'C'
44823 , p_gain_or_loss_flag => 'N'
44824 , p_gl_transfer_mode_code => 'S'
44825 , p_acct_entry_type_code => 'A'
44826 , p_switch_side_flag => 'N'
44827 , p_merge_duplicate_code => 'N'
44828 );
44829 --
44830 l_acc_rev_natural_side_code := 'D'; -- 4262811
44831 --
44832 --
44833 -- set accounting line type info
44834 --
44835 xla_ae_lines_pkg.SetAcctLineType
44836 (p_component_type => l_component_type
44837 ,p_event_type_code => l_event_type_code
44838 ,p_line_definition_owner_code => l_line_definition_owner_code
44839 ,p_line_definition_code => l_line_definition_code
44840 ,p_accounting_line_code => l_component_code
44841 ,p_accounting_line_type_code => l_component_type_code
44842 ,p_accounting_line_appl_id => l_component_appl_id
44843 ,p_amb_context_code => l_amb_context_code
44844 ,p_entity_code => l_entity_code
44845 ,p_event_class_code => l_event_class_code);
44846 --
44847 -- set accounting class
44848 --
44849 xla_ae_lines_pkg.SetAcctClass(
44850 p_accounting_class_code => 'REQUISITION'
44851 , p_ae_header_id => l_ae_header_id
44852 );
44853
44854 --
44855 -- set rounding class
44856 --
44857 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44858 'REQUISITION';
44859
44860 --
44861 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44862 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44863 --
44864 -- bulk performance
44865 --
44866 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44867
44868 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44869 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44870
44871 -- 4955764
44872 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44873 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44874
44875 -- 4458381 Public Sector Enh
44876
44877 --
44878 -- set accounting attributes for the line type
44879 --
44880 l_entered_amt_idx := 23;
44881 l_accted_amt_idx := 28;
44882 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44883 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44884 l_rec_acct_attrs.array_char_value(1) := p_source_15;
44888 p_source_code => 'XLA_EVENT_APPL_ID'
44885 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44886 l_rec_acct_attrs.array_num_value(2) :=
44887 xla_ae_sources_pkg.GetSystemSourceNum(
44889 , p_source_type_code => 'Y'
44890 , p_source_application_id => 602
44891 );
44892 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44893 l_rec_acct_attrs.array_char_value(3) := p_source_17;
44894 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44895 l_rec_acct_attrs.array_char_value(4) :=
44896 xla_ae_sources_pkg.GetSystemSourceChar(
44897 p_source_code => 'XLA_ENTITY_CODE'
44898 , p_source_type_code => 'Y'
44899 , p_source_application_id => 602
44900 );
44901 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44902 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_43);
44903 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44904 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_44);
44905 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44906 l_rec_acct_attrs.array_num_value(7) := p_source_21;
44907 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44908 l_rec_acct_attrs.array_char_value(8) := p_source_22;
44909 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44910 l_rec_acct_attrs.array_char_value(9) := p_source_23;
44911 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44912 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
44913 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44914 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
44915 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44916 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_43);
44917 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44918 l_rec_acct_attrs.array_char_value(13) := p_source_17;
44919 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
44920 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
44921 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
44922 l_rec_acct_attrs.array_num_value(15) := p_source_26;
44923 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
44924 l_rec_acct_attrs.array_char_value(16) := p_source_27;
44925 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
44926 l_rec_acct_attrs.array_num_value(17) := p_source_28;
44927 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
44928 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
44929 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
44930 l_rec_acct_attrs.array_num_value(19) := p_source_26;
44931 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
44932 l_rec_acct_attrs.array_char_value(20) := p_source_27;
44933 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
44934 l_rec_acct_attrs.array_num_value(21) := p_source_28;
44935 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
44936 l_rec_acct_attrs.array_char_value(22) := p_source_45;
44937 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
44938 l_rec_acct_attrs.array_num_value(23) := p_source_26;
44939 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
44940 l_rec_acct_attrs.array_char_value(24) := p_source_27;
44941 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
44942 l_rec_acct_attrs.array_date_value(25) := p_source_35;
44943 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
44944 l_rec_acct_attrs.array_num_value(26) := p_source_36;
44945 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
44946 l_rec_acct_attrs.array_char_value(27) := p_source_37;
44947 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
44948 l_rec_acct_attrs.array_num_value(28) := p_source_28;
44949 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
44950 l_rec_acct_attrs.array_char_value(29) := p_source_31;
44951 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
44952 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
44953 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
44954 l_rec_acct_attrs.array_char_value(31) := p_source_22;
44955 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
44956 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_43);
44957 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
44958 l_rec_acct_attrs.array_num_value(33) := p_source_46;
44959 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
44960 l_rec_acct_attrs.array_num_value(34) := p_source_46;
44961
44962 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44963 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44964
44965 ---------------------------------------------------------------------------------------------------------------
44966 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44967 ---------------------------------------------------------------------------------------------------------------
44968 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44969
44970 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44971 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44972
44973 IF xla_accounting_cache_pkg.GetValueChar
44974 (p_source_code => 'LEDGER_CATEGORY_CODE'
44975 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44976 AND l_bflow_method_code = 'PRIOR_ENTRY'
44977 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44978 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44979 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44980 )
44981 THEN
44982 xla_ae_lines_pkg.BflowUpgEntry
44983 (p_business_method_code => l_bflow_method_code
44984 ,p_business_class_code => l_bflow_class_code
44985 ,p_balance_type => l_balance_type_code);
44986 ELSE
44987 NULL;
44988 -- No business flow processing for business flow method of NONE.
44989 END IF;
44990
44991 --
44992 -- call analytical criteria
44993 --
44994
44995 --
44996 -- call description
44997 --
44998
44999 xla_ae_lines_pkg.SetLineDescription(
45000 p_ae_header_id => l_ae_header_id
45001 ,p_description => Description_2 (
45002 p_application_id => p_application_id
45003 , p_ae_header_id => l_ae_header_id
45004 , p_source_3 => p_source_3
45005 )
45006 );
45007
45008
45009 --
45010 -- call ADRs
45011 -- Bug 4922099
45012 --
45013 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45014 (NVL(l_actual_upg_option, 'N') = 'O') OR
45015 (NVL(l_enc_upg_option, 'N') = 'O')
45016 )
45017 THEN
45018 NULL;
45019 --
45020 --
45021
45022 l_ccid := AcctDerRule_9(
45023 p_application_id => p_application_id
45024 , p_ae_header_id => l_ae_header_id
45025 , p_source_9 => p_source_9
45026 , x_transaction_coa_id => l_adr_transaction_coa_id
45027 , x_accounting_coa_id => l_adr_accounting_coa_id
45028 , x_value_type_code => l_adr_value_type_code
45029 , p_side => 'NA'
45030 );
45031
45032 xla_ae_lines_pkg.set_ccid(
45033 p_code_combination_id => l_ccid
45034 , p_value_type_code => l_adr_value_type_code
45035 , p_transaction_coa_id => l_adr_transaction_coa_id
45036 , p_accounting_coa_id => l_adr_accounting_coa_id
45037 , p_adr_code => 'FV_ACCOUNT_RULE'
45038 , p_adr_type_code => 'S'
45039 , p_component_type => l_component_type
45040 , p_component_code => l_component_code
45041 , p_component_type_code => l_component_type_code
45042 , p_component_appl_id => l_component_appl_id
45043 , p_amb_context_code => l_amb_context_code
45044 , p_side => 'NA'
45045 );
45046
45047
45048 l_segment := AcctDerRule_6(
45049 p_application_id => p_application_id
45050 , p_ae_header_id => l_ae_header_id
45051 , p_source_7 => p_source_7
45052 , x_transaction_coa_id => l_adr_transaction_coa_id
45053 , x_accounting_coa_id => l_adr_accounting_coa_id
45054 , x_flexfield_segment_code => l_adr_flexfield_segment_code
45055 , x_flex_value_set_id => l_adr_flex_value_set_id
45056 , x_value_type_code => l_adr_value_type_code
45057 , x_value_combination_id => l_adr_value_combination_id
45058 , x_value_segment_code => l_adr_value_segment_code
45059 , p_side => 'NA'
45060 , p_override_seg_flag => 'Y'
45061 );
45062
45063 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
45064
45065 xla_ae_lines_pkg.set_segment(
45066 p_to_segment_code => 'GL_ACCOUNT'
45067 , p_segment_value => l_segment
45068 , p_from_segment_code => l_adr_value_segment_code
45069 , p_from_combination_id => l_adr_value_combination_id
45070 , p_value_type_code => l_adr_value_type_code
45071 , p_transaction_coa_id => l_adr_transaction_coa_id
45072 , p_accounting_coa_id => l_adr_accounting_coa_id
45073 , p_flexfield_segment_code => l_adr_flexfield_segment_code
45074 , p_flex_value_set_id => l_adr_flex_value_set_id
45075 , p_adr_code => 'FV_47X002_REQUISITION'
45076 , p_adr_type_code => 'S'
45077 , p_component_type => l_component_type
45078 , p_component_code => l_component_code
45079 , p_component_type_code => l_component_type_code
45080 , p_component_appl_id => l_component_appl_id
45081 , p_amb_context_code => l_amb_context_code
45082 , p_entity_code => 'REQUISITION'
45083 , p_event_class_code => 'REQUISITION'
45084 , p_side => 'NA'
45085 );
45086
45087 END IF;
45088
45089 --
45090 --
45091 END IF;
45092 --
45093 -- Bug 4922099
45094 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45095 (NVL(l_enc_upg_option, 'N') = 'O')
45096 ) AND
45097 (l_bflow_method_code = 'PRIOR_ENTRY')
45098 )
45099 THEN
45100 IF
45101 --
45102 1 = 2
45103 --
45104 THEN
45105 xla_accounting_err_pkg.build_message
45106 (p_appli_s_name => 'XLA'
45107 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45108 ,p_token_1 => 'LINE_NUMBER'
45109 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45110 ,p_token_2 => 'LINE_TYPE_NAME'
45111 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45112 l_component_type
45113 ,l_component_code
45114 ,l_component_type_code
45115 ,l_component_appl_id
45116 ,l_amb_context_code
45117 ,l_entity_code
45118 ,l_event_class_code
45119 )
45120 ,p_token_3 => 'OWNER'
45121 ,p_value_3 => xla_lookups_pkg.get_meaning(
45122 p_lookup_type => 'XLA_OWNER_TYPE'
45123 ,p_lookup_code => l_component_type_code
45124 )
45125 ,p_token_4 => 'PRODUCT_NAME'
45126 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45127 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45128 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45129 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45130 ,p_ae_header_id => NULL
45131 );
45132
45133 IF (C_LEVEL_ERROR>= g_log_level) THEN
45134 trace
45135 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45136 ,p_level => C_LEVEL_ERROR
45137 ,p_module => l_log_module);
45138 END IF;
45139 END IF;
45140 END IF;
45141 --
45142 --
45143 ------------------------------------------------------------------------------------------------
45144 -- 4219869 Business Flow
45145 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45146 -- Prior Entry. Currently, the following code is always generated.
45147 ------------------------------------------------------------------------------------------------
45148 XLA_AE_LINES_PKG.ValidateCurrentLine;
45149
45150 ------------------------------------------------------------------------------------
45151 -- 4219869 Business Flow
45152 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45153 ------------------------------------------------------------------------------------
45154 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45155
45156 ----------------------------------------------------------------------------------
45157 -- 4219869 Business Flow
45158 -- Update journal entry status -- Need to generate this within IF <condition>
45159 ----------------------------------------------------------------------------------
45160 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45161 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45162 ,p_balance_type_code => l_balance_type_code
45163 );
45164
45165 -------------------------------------------------------------------------------------------
45166 -- 4262811 - Generate the Accrual Reversal lines
45167 -------------------------------------------------------------------------------------------
45168 BEGIN
45169 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45170 (g_array_event(p_event_id).array_value_num('header_index'));
45171 IF l_acc_rev_flag IS NULL THEN
45172 l_acc_rev_flag := 'N';
45173 END IF;
45174 EXCEPTION
45175 WHEN OTHERS THEN
45176 l_acc_rev_flag := 'N';
45177 END;
45178 --
45179 IF (l_acc_rev_flag = 'Y') THEN
45180
45181 -- 4645092 ------------------------------------------------------------------------------
45182 -- To allow MPA report to determine if it should generate report process
45183 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45184 ------------------------------------------------------------------------------------------
45185
45186 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45187 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45188
45189 --
45190 -- Update the line information that should be overwritten
45191 --
45192 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45193 p_header_num => 1);
45194 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45195
45196 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45197
45198 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45199 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45200 END IF;
45201
45202 --
45203 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45204 --
45205 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45206 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45207 ELSE
45208 ---------------------------------------------------------------------------------------------------
45209 -- 4262811a Switch Sign
45210 ---------------------------------------------------------------------------------------------------
45211 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45212 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45213 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45214 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45215 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45216 -- 5132302
45217 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45218 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45219
45220 END IF;
45221
45222 -- 4955764
45223 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45224 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45225
45226
45227 XLA_AE_LINES_PKG.ValidateCurrentLine;
45228 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45229
45230 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45231 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45232 ,p_balance_type_code => l_balance_type_code);
45233
45234 END IF;
45235
45236 -----------------------------------------------------------------------------------------
45237 -- 4262811 Multiperiod Accounting
45238 -----------------------------------------------------------------------------------------
45239 -- No MPA option is assigned.
45240
45241
45242 END IF;
45243 END IF;
45244 --
45245
45246 --
45247 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45248 trace
45249 (p_msg => 'END of AcctLineType_82'
45250 ,p_level => C_LEVEL_PROCEDURE
45251 ,p_module => l_log_module);
45252 END IF;
45253 --
45254 EXCEPTION
45255 WHEN xla_exceptions_pkg.application_exception THEN
45256 RAISE;
45257 WHEN OTHERS THEN
45258 xla_exceptions_pkg.raise_message
45259 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_82');
45260 END AcctLineType_82;
45261 --
45262
45263 ---------------------------------------
45264 --
45265 -- PRIVATE FUNCTION
45266 -- AcctLineType_83
45267 --
45268 ---------------------------------------
45269 PROCEDURE AcctLineType_83 (
45270 p_application_id IN NUMBER
45271 ,p_event_id IN NUMBER
45272 ,p_calculate_acctd_flag IN VARCHAR2
45273 ,p_calculate_g_l_flag IN VARCHAR2
45274 ,p_actual_flag IN OUT VARCHAR2
45275 ,p_balance_type_code OUT VARCHAR2
45276 ,p_gain_or_loss_ref OUT VARCHAR2
45277
45278 --Journal entry Line Description
45279 , p_source_3 IN VARCHAR2
45280 --Federal Fund Category
45281 , p_source_7 IN VARCHAR2
45282 --Federal Fund Expired Status
45283 , p_source_8 IN VARCHAR2
45284 --Budget Account
45285 , p_source_9 IN NUMBER
45286 --Main Or Backing Code
45287 , p_source_13 IN VARCHAR2
45288 --Accounting Reversal Flag
45289 , p_source_15 IN VARCHAR2
45290 --Distribution Link Type
45291 , p_source_17 IN VARCHAR2
45292 --Applied To Application Identifier
45293 , p_source_21 IN NUMBER
45294 --Applied To Distribution Link Type
45295 , p_source_22 IN VARCHAR2
45296 --Applied To Entity Code
45297 , p_source_23 IN VARCHAR2
45298 --Applied To Distribution Identifier 1
45299 , p_source_24 IN NUMBER
45300 --Applied To Header Identifier 1
45301 , p_source_25 IN NUMBER
45302 --Entered Amount
45303 , p_source_26 IN NUMBER
45304 --Currency Code
45305 , p_source_27 IN VARCHAR2
45306 --Accounted Amount
45307 , p_source_28 IN NUMBER
45308 --JFMIP Reference
45309 , p_source_31 IN VARCHAR2
45310 --Currency Conversion Date
45311 , p_source_35 IN DATE
45312 --Currency Conversion Rate
45313 , p_source_36 IN NUMBER
45314 --Currency Conversion Type
45315 , p_source_37 IN VARCHAR2
45316 --Requisition Distribution Identifier
45317 , p_source_43 IN NUMBER
45318 --Requisition Identifier
45319 , p_source_44 IN NUMBER
45320 --Requisition Encumbrance Upgrade Option
45321 , p_source_45 IN VARCHAR2
45322 --Requisition Upgrade Encumbrance Type Identifier
45323 , p_source_46 IN NUMBER
45324 --Adjustment Status
45325 , p_source_47 IN VARCHAR2
45326 )
45327 IS
45328
45329 l_component_type VARCHAR2(80);
45330 l_component_code VARCHAR2(30);
45331 l_component_type_code VARCHAR2(1);
45332 l_component_appl_id INTEGER;
45333 l_amb_context_code VARCHAR2(30);
45334 l_entity_code VARCHAR2(30);
45335 l_event_class_code VARCHAR2(30);
45336 l_ae_header_id NUMBER;
45337 l_event_type_code VARCHAR2(30);
45338 l_line_definition_code VARCHAR2(30);
45339 l_line_definition_owner_code VARCHAR2(1);
45340 --
45341 -- adr variables
45342 l_segment VARCHAR2(30);
45343 l_ccid NUMBER;
45344 l_adr_transaction_coa_id NUMBER;
45345 l_adr_accounting_coa_id NUMBER;
45346 l_adr_flexfield_segment_code VARCHAR2(30);
45347 l_adr_flex_value_set_id NUMBER;
45348 l_adr_value_type_code VARCHAR2(30);
45349 l_adr_value_combination_id NUMBER;
45350 l_adr_value_segment_code VARCHAR2(30);
45351
45352 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45353 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45354 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45355 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45356
45357 -- 4262811 Variables ------------------------------------------------------------------------------------------
45358 l_entered_amt_idx NUMBER;
45359 l_accted_amt_idx NUMBER;
45360 l_acc_rev_flag VARCHAR2(1);
45361 l_accrual_line_num NUMBER;
45362 l_tmp_amt NUMBER;
45363 l_acc_rev_natural_side_code VARCHAR2(1);
45364
45365 l_num_entries NUMBER;
45366 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45367 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45368 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45369 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45370 l_recog_line_1 NUMBER;
45371 l_recog_line_2 NUMBER;
45372
45373 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45374 l_bflow_applied_to_amt NUMBER; -- 5132302
45375 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45376
45377 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45378
45379 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45380 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45381
45382 ---------------------------------------------------------------------------------------------------------------
45383
45384
45385 --
45386 -- bulk performance
45387 --
45388 l_balance_type_code VARCHAR2(1);
45389 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45390 l_log_module VARCHAR2(240);
45391
45392 --
45393 -- Upgrade strategy
45394 --
45395 l_actual_upg_option VARCHAR2(1);
45396 l_enc_upg_option VARCHAR2(1);
45397
45398 --
45399 BEGIN
45400 --
45401 IF g_log_enabled THEN
45402 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
45403 END IF;
45404 --
45405 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45406
45407 trace
45408 (p_msg => 'BEGIN of AcctLineType_83'
45409 ,p_level => C_LEVEL_PROCEDURE
45410 ,p_module => l_log_module);
45411
45412 END IF;
45413 --
45414 l_component_type := 'AMB_JLT';
45415 l_component_code := 'FV_REQ_RESERVE_DR';
45416 l_component_type_code := 'S';
45417 l_component_appl_id := 201;
45418 l_amb_context_code := 'DEFAULT';
45419 l_entity_code := 'REQUISITION';
45420 l_event_class_code := 'REQUISITION';
45421 l_event_type_code := 'REQUISITION_ALL';
45422 l_line_definition_owner_code := 'S';
45423 l_line_definition_code := 'FV_REQ_ALL';
45424 --
45425 l_balance_type_code := 'A';
45426 l_segment := NULL;
45427 l_ccid := NULL;
45428 l_adr_transaction_coa_id := NULL;
45429 l_adr_accounting_coa_id := NULL;
45430 l_adr_flexfield_segment_code := NULL;
45431 l_adr_flex_value_set_id := NULL;
45432 l_adr_value_type_code := NULL;
45433 l_adr_value_combination_id := NULL;
45434 l_adr_value_segment_code := NULL;
45435
45436 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45437 l_bflow_class_code := 'FV_REQ_DR'; -- 4219869 Business Flow
45438 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45439 l_budgetary_control_flag := 'Y';
45440
45441 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45442 l_bflow_applied_to_amt := NULL; -- 5132302
45443 l_entered_amt_idx := NULL; -- 4262811
45444 l_accted_amt_idx := NULL; -- 4262811
45445 l_acc_rev_flag := NULL; -- 4262811
45446 l_accrual_line_num := NULL; -- 4262811
45447 l_tmp_amt := NULL; -- 4262811
45448 --
45449
45450 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45451 l_balance_type_code <> 'B' THEN
45452 IF (NVL(
45453 xla_ae_sources_pkg.GetSystemSourceChar(
45454 p_source_code => 'XLA_EVENT_TYPE_CODE'
45455 , p_source_type_code => 'Y'
45456 , p_source_application_id => 602
45457 ),'
45458 ') = 'REQ_RESERVED' OR
45459 NVL(
45460 xla_ae_sources_pkg.GetSystemSourceChar(
45461 p_source_code => 'XLA_EVENT_TYPE_CODE'
45462 , p_source_type_code => 'Y'
45463 , p_source_application_id => 602
45464 ),'
45465 ') = 'REQ_ADJUSTED' AND
45466 NVL(p_source_47,'
45467 ') = 'NEW') AND
45468 NVL(p_source_13,'
45469 ') = 'M'
45470 THEN
45471
45472 --
45473 XLA_AE_LINES_PKG.SetNewLine;
45474
45475 p_balance_type_code := l_balance_type_code;
45476 -- set the flag so later we will know whether the gain loss line needs to be created
45477
45478 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45479 p_actual_flag :='A';
45480 END IF;
45481
45482 --
45483 -- bulk performance
45484 --
45485 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45486 p_header_num => 0); -- 4262811
45487 --
45488 -- set accounting line options
45489 --
45490 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45491 p_natural_side_code => 'D'
45492 , p_gain_or_loss_flag => 'N'
45493 , p_gl_transfer_mode_code => 'S'
45494 , p_acct_entry_type_code => 'A'
45495 , p_switch_side_flag => 'N'
45496 , p_merge_duplicate_code => 'N'
45497 );
45498 --
45499 l_acc_rev_natural_side_code := 'C'; -- 4262811
45500 --
45501 --
45502 -- set accounting line type info
45503 --
45504 xla_ae_lines_pkg.SetAcctLineType
45505 (p_component_type => l_component_type
45506 ,p_event_type_code => l_event_type_code
45507 ,p_line_definition_owner_code => l_line_definition_owner_code
45508 ,p_line_definition_code => l_line_definition_code
45509 ,p_accounting_line_code => l_component_code
45510 ,p_accounting_line_type_code => l_component_type_code
45511 ,p_accounting_line_appl_id => l_component_appl_id
45512 ,p_amb_context_code => l_amb_context_code
45513 ,p_entity_code => l_entity_code
45514 ,p_event_class_code => l_event_class_code);
45515 --
45516 -- set accounting class
45517 --
45518 xla_ae_lines_pkg.SetAcctClass(
45519 p_accounting_class_code => 'REQUISITION'
45520 , p_ae_header_id => l_ae_header_id
45521 );
45522
45523 --
45524 -- set rounding class
45525 --
45526 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45527 'REQUISITION';
45528
45529 --
45530 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45531 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45532 --
45533 -- bulk performance
45534 --
45535 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45536
45537 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45538 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45539
45540 -- 4955764
45541 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45542 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45543
45544 -- 4458381 Public Sector Enh
45545
45546 --
45547 -- set accounting attributes for the line type
45548 --
45549 l_entered_amt_idx := 23;
45550 l_accted_amt_idx := 28;
45551 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45552 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45553 l_rec_acct_attrs.array_char_value(1) := p_source_15;
45554 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
45555 l_rec_acct_attrs.array_num_value(2) :=
45556 xla_ae_sources_pkg.GetSystemSourceNum(
45557 p_source_code => 'XLA_EVENT_APPL_ID'
45558 , p_source_type_code => 'Y'
45559 , p_source_application_id => 602
45560 );
45561 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
45562 l_rec_acct_attrs.array_char_value(3) := p_source_17;
45563 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
45564 l_rec_acct_attrs.array_char_value(4) :=
45565 xla_ae_sources_pkg.GetSystemSourceChar(
45566 p_source_code => 'XLA_ENTITY_CODE'
45567 , p_source_type_code => 'Y'
45568 , p_source_application_id => 602
45569 );
45570 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
45571 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_43);
45572 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
45573 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_44);
45574 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
45575 l_rec_acct_attrs.array_num_value(7) := p_source_21;
45576 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45577 l_rec_acct_attrs.array_char_value(8) := p_source_22;
45578 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
45579 l_rec_acct_attrs.array_char_value(9) := p_source_23;
45580 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
45581 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
45582 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45583 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
45584 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
45585 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_43);
45586 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
45587 l_rec_acct_attrs.array_char_value(13) := p_source_17;
45588 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
45589 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
45590 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
45591 l_rec_acct_attrs.array_num_value(15) := p_source_26;
45592 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
45593 l_rec_acct_attrs.array_char_value(16) := p_source_27;
45594 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
45595 l_rec_acct_attrs.array_num_value(17) := p_source_28;
45596 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
45597 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
45598 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
45599 l_rec_acct_attrs.array_num_value(19) := p_source_26;
45600 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
45601 l_rec_acct_attrs.array_char_value(20) := p_source_27;
45602 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
45603 l_rec_acct_attrs.array_num_value(21) := p_source_28;
45604 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
45605 l_rec_acct_attrs.array_char_value(22) := p_source_45;
45606 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
45607 l_rec_acct_attrs.array_num_value(23) := p_source_26;
45608 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
45609 l_rec_acct_attrs.array_char_value(24) := p_source_27;
45610 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
45611 l_rec_acct_attrs.array_date_value(25) := p_source_35;
45612 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
45613 l_rec_acct_attrs.array_num_value(26) := p_source_36;
45614 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
45615 l_rec_acct_attrs.array_char_value(27) := p_source_37;
45616 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
45617 l_rec_acct_attrs.array_num_value(28) := p_source_28;
45618 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
45619 l_rec_acct_attrs.array_char_value(29) := p_source_31;
45620 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
45621 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_24);
45622 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
45623 l_rec_acct_attrs.array_char_value(31) := p_source_22;
45624 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
45625 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_43);
45626 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
45627 l_rec_acct_attrs.array_num_value(33) := p_source_46;
45628 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
45629 l_rec_acct_attrs.array_num_value(34) := p_source_46;
45630
45631 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45632 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45633
45634 ---------------------------------------------------------------------------------------------------------------
45635 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45636 ---------------------------------------------------------------------------------------------------------------
45637 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45638
45639 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45640 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45641
45642 IF xla_accounting_cache_pkg.GetValueChar
45643 (p_source_code => 'LEDGER_CATEGORY_CODE'
45644 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45645 AND l_bflow_method_code = 'PRIOR_ENTRY'
45646 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45647 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45648 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45649 )
45650 THEN
45651 xla_ae_lines_pkg.BflowUpgEntry
45652 (p_business_method_code => l_bflow_method_code
45653 ,p_business_class_code => l_bflow_class_code
45654 ,p_balance_type => l_balance_type_code);
45655 ELSE
45656 NULL;
45657 -- No business flow processing for business flow method of NONE.
45658 END IF;
45659
45660 --
45661 -- call analytical criteria
45662 --
45663
45664 --
45665 -- call description
45666 --
45667
45668 xla_ae_lines_pkg.SetLineDescription(
45669 p_ae_header_id => l_ae_header_id
45670 ,p_description => Description_2 (
45671 p_application_id => p_application_id
45672 , p_ae_header_id => l_ae_header_id
45673 , p_source_3 => p_source_3
45674 )
45675 );
45676
45677
45678 --
45679 -- call ADRs
45680 -- Bug 4922099
45681 --
45682 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45683 (NVL(l_actual_upg_option, 'N') = 'O') OR
45684 (NVL(l_enc_upg_option, 'N') = 'O')
45685 )
45686 THEN
45687 NULL;
45688 --
45689 --
45690
45691 l_ccid := AcctDerRule_9(
45692 p_application_id => p_application_id
45693 , p_ae_header_id => l_ae_header_id
45694 , p_source_9 => p_source_9
45695 , x_transaction_coa_id => l_adr_transaction_coa_id
45696 , x_accounting_coa_id => l_adr_accounting_coa_id
45697 , x_value_type_code => l_adr_value_type_code
45698 , p_side => 'NA'
45699 );
45700
45701 xla_ae_lines_pkg.set_ccid(
45702 p_code_combination_id => l_ccid
45703 , p_value_type_code => l_adr_value_type_code
45704 , p_transaction_coa_id => l_adr_transaction_coa_id
45705 , p_accounting_coa_id => l_adr_accounting_coa_id
45706 , p_adr_code => 'FV_ACCOUNT_RULE'
45707 , p_adr_type_code => 'S'
45708 , p_component_type => l_component_type
45709 , p_component_code => l_component_code
45710 , p_component_type_code => l_component_type_code
45711 , p_component_appl_id => l_component_appl_id
45712 , p_amb_context_code => l_amb_context_code
45713 , p_side => 'NA'
45714 );
45715
45716
45717 l_segment := AcctDerRule_5(
45718 p_application_id => p_application_id
45719 , p_ae_header_id => l_ae_header_id
45720 , p_source_7 => p_source_7
45721 , p_source_8 => p_source_8
45722 , x_transaction_coa_id => l_adr_transaction_coa_id
45723 , x_accounting_coa_id => l_adr_accounting_coa_id
45724 , x_flexfield_segment_code => l_adr_flexfield_segment_code
45725 , x_flex_value_set_id => l_adr_flex_value_set_id
45726 , x_value_type_code => l_adr_value_type_code
45727 , x_value_combination_id => l_adr_value_combination_id
45728 , x_value_segment_code => l_adr_value_segment_code
45729 , p_side => 'NA'
45730 , p_override_seg_flag => 'Y'
45731 );
45732
45733 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
45734
45735 xla_ae_lines_pkg.set_segment(
45736 p_to_segment_code => 'GL_ACCOUNT'
45737 , p_segment_value => l_segment
45738 , p_from_segment_code => l_adr_value_segment_code
45739 , p_from_combination_id => l_adr_value_combination_id
45740 , p_value_type_code => l_adr_value_type_code
45741 , p_transaction_coa_id => l_adr_transaction_coa_id
45742 , p_accounting_coa_id => l_adr_accounting_coa_id
45743 , p_flexfield_segment_code => l_adr_flexfield_segment_code
45744 , p_flex_value_set_id => l_adr_flex_value_set_id
45745 , p_adr_code => 'FV_46X002'
45746 , p_adr_type_code => 'S'
45747 , p_component_type => l_component_type
45748 , p_component_code => l_component_code
45749 , p_component_type_code => l_component_type_code
45750 , p_component_appl_id => l_component_appl_id
45751 , p_amb_context_code => l_amb_context_code
45752 , p_entity_code => 'REQUISITION'
45753 , p_event_class_code => 'REQUISITION'
45754 , p_side => 'NA'
45755 );
45756
45757 END IF;
45758
45759 --
45760 --
45761 END IF;
45762 --
45763 -- Bug 4922099
45764 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45765 (NVL(l_enc_upg_option, 'N') = 'O')
45766 ) AND
45767 (l_bflow_method_code = 'PRIOR_ENTRY')
45768 )
45769 THEN
45770 IF
45771 --
45772 1 = 2
45773 --
45774 THEN
45775 xla_accounting_err_pkg.build_message
45776 (p_appli_s_name => 'XLA'
45777 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45778 ,p_token_1 => 'LINE_NUMBER'
45779 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45780 ,p_token_2 => 'LINE_TYPE_NAME'
45781 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45782 l_component_type
45783 ,l_component_code
45784 ,l_component_type_code
45785 ,l_component_appl_id
45786 ,l_amb_context_code
45787 ,l_entity_code
45788 ,l_event_class_code
45789 )
45790 ,p_token_3 => 'OWNER'
45791 ,p_value_3 => xla_lookups_pkg.get_meaning(
45795 ,p_token_4 => 'PRODUCT_NAME'
45792 p_lookup_type => 'XLA_OWNER_TYPE'
45793 ,p_lookup_code => l_component_type_code
45794 )
45796 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45797 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45798 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45799 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45800 ,p_ae_header_id => NULL
45801 );
45802
45803 IF (C_LEVEL_ERROR>= g_log_level) THEN
45804 trace
45805 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45806 ,p_level => C_LEVEL_ERROR
45807 ,p_module => l_log_module);
45808 END IF;
45809 END IF;
45810 END IF;
45811 --
45812 --
45813 ------------------------------------------------------------------------------------------------
45814 -- 4219869 Business Flow
45815 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45816 -- Prior Entry. Currently, the following code is always generated.
45817 ------------------------------------------------------------------------------------------------
45818 XLA_AE_LINES_PKG.ValidateCurrentLine;
45819
45820 ------------------------------------------------------------------------------------
45821 -- 4219869 Business Flow
45822 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45823 ------------------------------------------------------------------------------------
45824 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45825
45826 ----------------------------------------------------------------------------------
45827 -- 4219869 Business Flow
45828 -- Update journal entry status -- Need to generate this within IF <condition>
45829 ----------------------------------------------------------------------------------
45830 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45831 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45832 ,p_balance_type_code => l_balance_type_code
45833 );
45834
45835 -------------------------------------------------------------------------------------------
45836 -- 4262811 - Generate the Accrual Reversal lines
45837 -------------------------------------------------------------------------------------------
45838 BEGIN
45839 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45840 (g_array_event(p_event_id).array_value_num('header_index'));
45841 IF l_acc_rev_flag IS NULL THEN
45842 l_acc_rev_flag := 'N';
45843 END IF;
45844 EXCEPTION
45845 WHEN OTHERS THEN
45846 l_acc_rev_flag := 'N';
45847 END;
45848 --
45849 IF (l_acc_rev_flag = 'Y') THEN
45850
45851 -- 4645092 ------------------------------------------------------------------------------
45852 -- To allow MPA report to determine if it should generate report process
45853 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45854 ------------------------------------------------------------------------------------------
45855
45856 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45857 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45858
45859 --
45860 -- Update the line information that should be overwritten
45861 --
45862 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45863 p_header_num => 1);
45864 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45865
45866 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45867
45868 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45869 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45870 END IF;
45871
45872 --
45873 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45874 --
45875 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45876 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45877 ELSE
45878 ---------------------------------------------------------------------------------------------------
45879 -- 4262811a Switch Sign
45880 ---------------------------------------------------------------------------------------------------
45881 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45882 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45883 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45884 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45885 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45889
45886 -- 5132302
45887 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45888 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45890 END IF;
45891
45892 -- 4955764
45893 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45894 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45895
45896
45897 XLA_AE_LINES_PKG.ValidateCurrentLine;
45898 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45899
45900 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45901 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45902 ,p_balance_type_code => l_balance_type_code);
45903
45904 END IF;
45905
45906 -----------------------------------------------------------------------------------------
45907 -- 4262811 Multiperiod Accounting
45908 -----------------------------------------------------------------------------------------
45909 -- No MPA option is assigned.
45910
45911
45912 END IF;
45913 END IF;
45914 --
45915
45916 --
45917 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45918 trace
45919 (p_msg => 'END of AcctLineType_83'
45920 ,p_level => C_LEVEL_PROCEDURE
45921 ,p_module => l_log_module);
45922 END IF;
45923 --
45924 EXCEPTION
45925 WHEN xla_exceptions_pkg.application_exception THEN
45926 RAISE;
45927 WHEN OTHERS THEN
45928 xla_exceptions_pkg.raise_message
45929 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_83');
45930 END AcctLineType_83;
45931 --
45932
45933 ---------------------------------------
45934 --
45935 -- PRIVATE FUNCTION
45936 -- AcctLineType_84
45937 --
45938 ---------------------------------------
45939 PROCEDURE AcctLineType_84 (
45940 p_application_id IN NUMBER
45941 ,p_event_id IN NUMBER
45942 ,p_calculate_acctd_flag IN VARCHAR2
45943 ,p_calculate_g_l_flag IN VARCHAR2
45944 ,p_actual_flag IN OUT VARCHAR2
45945 ,p_balance_type_code OUT VARCHAR2
45946 ,p_gain_or_loss_ref OUT VARCHAR2
45947
45948 --Budget Account
45949 , p_source_9 IN NUMBER
45950 --Main Or Backing Code
45951 , p_source_13 IN VARCHAR2
45952 --Accounting Reversal Flag
45953 , p_source_15 IN VARCHAR2
45954 --Distribution Link Type
45955 , p_source_17 IN VARCHAR2
45956 --Applied To Application Identifier
45957 , p_source_21 IN NUMBER
45958 --Applied To Distribution Link Type
45959 , p_source_22 IN VARCHAR2
45960 --Applied To Entity Code
45961 , p_source_23 IN VARCHAR2
45962 --Applied To Distribution Identifier 1
45963 , p_source_24 IN NUMBER
45964 --Applied To Header Identifier 1
45965 , p_source_25 IN NUMBER
45966 --Entered Amount
45967 , p_source_26 IN NUMBER
45968 --Currency Code
45969 , p_source_27 IN VARCHAR2
45970 --Accounted Amount
45971 , p_source_28 IN NUMBER
45972 --JFMIP Reference
45973 , p_source_31 IN VARCHAR2
45974 --Requisition Distribution Identifier
45975 , p_source_43 IN NUMBER
45976 --Requisition Identifier
45977 , p_source_44 IN NUMBER
45978 --Requisition Encumbrance Upgrade Option
45979 , p_source_45 IN VARCHAR2
45980 --Requisition Upgrade Encumbrance Type Identifier
45981 , p_source_46 IN NUMBER
45982 --Adjustment Status
45983 , p_source_47 IN VARCHAR2
45984 )
45985 IS
45986
45987 l_component_type VARCHAR2(80);
45988 l_component_code VARCHAR2(30);
45989 l_component_type_code VARCHAR2(1);
45990 l_component_appl_id INTEGER;
45991 l_amb_context_code VARCHAR2(30);
45992 l_entity_code VARCHAR2(30);
45993 l_event_class_code VARCHAR2(30);
45994 l_ae_header_id NUMBER;
45995 l_event_type_code VARCHAR2(30);
45996 l_line_definition_code VARCHAR2(30);
45997 l_line_definition_owner_code VARCHAR2(1);
45998 --
45999 -- adr variables
46000 l_segment VARCHAR2(30);
46001 l_ccid NUMBER;
46002 l_adr_transaction_coa_id NUMBER;
46003 l_adr_accounting_coa_id NUMBER;
46004 l_adr_flexfield_segment_code VARCHAR2(30);
46005 l_adr_flex_value_set_id NUMBER;
46006 l_adr_value_type_code VARCHAR2(30);
46007 l_adr_value_combination_id NUMBER;
46008 l_adr_value_segment_code VARCHAR2(30);
46009
46010 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46011 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46012 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46013 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46014
46015 -- 4262811 Variables ------------------------------------------------------------------------------------------
46016 l_entered_amt_idx NUMBER;
46017 l_accted_amt_idx NUMBER;
46018 l_acc_rev_flag VARCHAR2(1);
46019 l_accrual_line_num NUMBER;
46020 l_tmp_amt NUMBER;
46021 l_acc_rev_natural_side_code VARCHAR2(1);
46022
46023 l_num_entries NUMBER;
46024 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46025 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46026 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46027 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46028 l_recog_line_1 NUMBER;
46029 l_recog_line_2 NUMBER;
46030
46031 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46032 l_bflow_applied_to_amt NUMBER; -- 5132302
46033 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46034
46035 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46036
46037 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46038 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46039
46040 ---------------------------------------------------------------------------------------------------------------
46041
46042
46043 --
46044 -- bulk performance
46045 --
46046 l_balance_type_code VARCHAR2(1);
46047 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46048 l_log_module VARCHAR2(240);
46049
46050 --
46051 -- Upgrade strategy
46052 --
46053 l_actual_upg_option VARCHAR2(1);
46054 l_enc_upg_option VARCHAR2(1);
46055
46056 --
46057 BEGIN
46058 --
46059 IF g_log_enabled THEN
46060 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
46061 END IF;
46062 --
46063 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46064
46065 trace
46066 (p_msg => 'BEGIN of AcctLineType_84'
46067 ,p_level => C_LEVEL_PROCEDURE
46068 ,p_module => l_log_module);
46069
46070 END IF;
46071 --
46072 l_component_type := 'AMB_JLT';
46073 l_component_code := 'FV_REQ_UNRESERVE_CR';
46074 l_component_type_code := 'S';
46075 l_component_appl_id := 201;
46076 l_amb_context_code := 'DEFAULT';
46077 l_entity_code := 'REQUISITION';
46078 l_event_class_code := 'REQUISITION';
46079 l_event_type_code := 'REQUISITION_ALL';
46080 l_line_definition_owner_code := 'S';
46081 l_line_definition_code := 'FV_REQ_ALL';
46082 --
46083 l_balance_type_code := 'A';
46084 l_segment := NULL;
46085 l_ccid := NULL;
46086 l_adr_transaction_coa_id := NULL;
46087 l_adr_accounting_coa_id := NULL;
46088 l_adr_flexfield_segment_code := NULL;
46089 l_adr_flex_value_set_id := NULL;
46090 l_adr_value_type_code := NULL;
46091 l_adr_value_combination_id := NULL;
46092 l_adr_value_segment_code := NULL;
46093
46094 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
46095 l_bflow_class_code := 'FV_REQ_DR'; -- 4219869 Business Flow
46096 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
46097 l_budgetary_control_flag := 'Y';
46098
46099 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46100 l_bflow_applied_to_amt := NULL; -- 5132302
46101 l_entered_amt_idx := NULL; -- 4262811
46102 l_accted_amt_idx := NULL; -- 4262811
46103 l_acc_rev_flag := NULL; -- 4262811
46104 l_accrual_line_num := NULL; -- 4262811
46105 l_tmp_amt := NULL; -- 4262811
46106 --
46107
46108 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46109 l_balance_type_code <> 'B' THEN
46110 IF (NVL(
46111 xla_ae_sources_pkg.GetSystemSourceChar(
46112 p_source_code => 'XLA_EVENT_TYPE_CODE'
46113 , p_source_type_code => 'Y'
46114 , p_source_application_id => 602
46115 ),'
46116 ') = 'REQ_UNRESERVED' OR
46117 NVL(
46118 xla_ae_sources_pkg.GetSystemSourceChar(
46119 p_source_code => 'XLA_EVENT_TYPE_CODE'
46120 , p_source_type_code => 'Y'
46121 , p_source_application_id => 602
46122 ),'
46123 ') = 'REQ_FINAL_CLOSED' OR
46124 (NVL(
46125 xla_ae_sources_pkg.GetSystemSourceChar(
46126 p_source_code => 'XLA_EVENT_TYPE_CODE'
46127 , p_source_type_code => 'Y'
46128 , p_source_application_id => 602
46129 ),'
46130 ') = 'REQ_ADJUSTED' AND
46131 NVL(p_source_47,'
46132 ') = 'OLD') OR
46133 NVL(
46134 xla_ae_sources_pkg.GetSystemSourceChar(
46135 p_source_code => 'XLA_EVENT_TYPE_CODE'
46136 , p_source_type_code => 'Y'
46137 , p_source_application_id => 602
46138 ),'
46139 ') = 'REQ_REJECTED' OR
46140 NVL(
46141 xla_ae_sources_pkg.GetSystemSourceChar(
46142 p_source_code => 'XLA_EVENT_TYPE_CODE'
46143 , p_source_type_code => 'Y'
46144 , p_source_application_id => 602
46145 ),'
46146 ') = 'REQ_RETURNED') AND
46147 NVL(p_source_13,'
46148 ') = 'M'
46149 THEN
46150
46151 --
46152 XLA_AE_LINES_PKG.SetNewLine;
46153
46154 p_balance_type_code := l_balance_type_code;
46155 -- set the flag so later we will know whether the gain loss line needs to be created
46156
46157 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46158 p_actual_flag :='A';
46159 END IF;
46160
46161 --
46162 -- bulk performance
46163 --
46164 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46165 p_header_num => 0); -- 4262811
46166 --
46167 -- set accounting line options
46168 --
46169 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46170 p_natural_side_code => 'C'
46171 , p_gain_or_loss_flag => 'N'
46172 , p_gl_transfer_mode_code => 'S'
46173 , p_acct_entry_type_code => 'A'
46174 , p_switch_side_flag => 'N'
46175 , p_merge_duplicate_code => 'N'
46176 );
46177 --
46178 l_acc_rev_natural_side_code := 'D'; -- 4262811
46179 --
46180 --
46181 -- set accounting line type info
46182 --
46183 xla_ae_lines_pkg.SetAcctLineType
46184 (p_component_type => l_component_type
46185 ,p_event_type_code => l_event_type_code
46186 ,p_line_definition_owner_code => l_line_definition_owner_code
46187 ,p_line_definition_code => l_line_definition_code
46188 ,p_accounting_line_code => l_component_code
46189 ,p_accounting_line_type_code => l_component_type_code
46190 ,p_accounting_line_appl_id => l_component_appl_id
46191 ,p_amb_context_code => l_amb_context_code
46192 ,p_entity_code => l_entity_code
46193 ,p_event_class_code => l_event_class_code);
46194 --
46195 -- set accounting class
46196 --
46197 xla_ae_lines_pkg.SetAcctClass(
46198 p_accounting_class_code => 'REQUISITION'
46199 , p_ae_header_id => l_ae_header_id
46200 );
46201
46202 --
46203 -- set rounding class
46204 --
46205 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46206 'REQUISITION';
46207
46208 --
46209 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46210 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46211 --
46212 -- bulk performance
46213 --
46214 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46215
46216 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46217 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46218
46219 -- 4955764
46220 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46221 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46222
46223 -- 4458381 Public Sector Enh
46224
46225 --
46226 -- set accounting attributes for the line type
46227 --
46228 l_entered_amt_idx := 23;
46229 l_accted_amt_idx := 25;
46230 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46231 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46232 l_rec_acct_attrs.array_char_value(1) := p_source_15;
46233 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
46234 l_rec_acct_attrs.array_num_value(2) :=
46235 xla_ae_sources_pkg.GetSystemSourceNum(
46236 p_source_code => 'XLA_EVENT_APPL_ID'
46237 , p_source_type_code => 'Y'
46238 , p_source_application_id => 602
46239 );
46240 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
46241 l_rec_acct_attrs.array_char_value(3) := p_source_17;
46242 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
46243 l_rec_acct_attrs.array_char_value(4) :=
46244 xla_ae_sources_pkg.GetSystemSourceChar(
46245 p_source_code => 'XLA_ENTITY_CODE'
46246 , p_source_type_code => 'Y'
46247 , p_source_application_id => 602
46248 );
46249 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
46250 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_43);
46251 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
46252 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_44);
46253 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
46254 l_rec_acct_attrs.array_num_value(7) := p_source_21;
46255 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46256 l_rec_acct_attrs.array_char_value(8) := p_source_22;
46257 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
46258 l_rec_acct_attrs.array_char_value(9) := p_source_23;
46259 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
46260 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
46261 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46262 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
46263 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
46264 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_43);
46265 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
46266 l_rec_acct_attrs.array_char_value(13) := p_source_17;
46267 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
46268 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
46269 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
46270 l_rec_acct_attrs.array_num_value(15) := p_source_26;
46271 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
46272 l_rec_acct_attrs.array_char_value(16) := p_source_27;
46273 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
46274 l_rec_acct_attrs.array_num_value(17) := p_source_28;
46275 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
46276 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
46277 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
46278 l_rec_acct_attrs.array_num_value(19) := p_source_26;
46279 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
46280 l_rec_acct_attrs.array_char_value(20) := p_source_27;
46281 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
46282 l_rec_acct_attrs.array_num_value(21) := p_source_28;
46283 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
46284 l_rec_acct_attrs.array_char_value(22) := p_source_45;
46285 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
46286 l_rec_acct_attrs.array_num_value(23) := p_source_26;
46287 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
46288 l_rec_acct_attrs.array_char_value(24) := p_source_27;
46289 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
46290 l_rec_acct_attrs.array_num_value(25) := p_source_28;
46291 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
46292 l_rec_acct_attrs.array_char_value(26) := p_source_31;
46293 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
46294 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
46295 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
46296 l_rec_acct_attrs.array_char_value(28) := p_source_22;
46297 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
46298 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_43);
46299 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
46300 l_rec_acct_attrs.array_num_value(30) := p_source_46;
46301 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
46302 l_rec_acct_attrs.array_num_value(31) := p_source_46;
46303
46304 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46305 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46306
46307 ---------------------------------------------------------------------------------------------------------------
46308 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46309 ---------------------------------------------------------------------------------------------------------------
46310 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46311
46312 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46313 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46314
46315 IF xla_accounting_cache_pkg.GetValueChar
46316 (p_source_code => 'LEDGER_CATEGORY_CODE'
46317 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46318 AND l_bflow_method_code = 'PRIOR_ENTRY'
46319 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46320 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46321 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46322 )
46323 THEN
46324 xla_ae_lines_pkg.BflowUpgEntry
46325 (p_business_method_code => l_bflow_method_code
46326 ,p_business_class_code => l_bflow_class_code
46327 ,p_balance_type => l_balance_type_code);
46328 ELSE
46329 NULL;
46330 XLA_AE_LINES_PKG.business_flow_validation(
46331 p_business_method_code => l_bflow_method_code
46332 ,p_business_class_code => l_bflow_class_code
46333 ,p_inherit_description_flag => l_inherit_desc_flag);
46334 END IF;
46335
46336 --
46337 -- call analytical criteria
46338 --
46339 -- Inherited Analytical Criteria for business flow method of Prior Entry.
46340 --
46341 -- call description
46342 --
46346 -- Bug 4922099
46343 -- No description or it is inherited.
46344 --
46345 -- call ADRs
46347 --
46348 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46349 (NVL(l_actual_upg_option, 'N') = 'O') OR
46350 (NVL(l_enc_upg_option, 'N') = 'O')
46351 )
46352 THEN
46353 NULL;
46354 --
46355 --
46356
46357 --
46358 --
46359 END IF;
46360 --
46361 -- Bug 4922099
46362 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46363 (NVL(l_enc_upg_option, 'N') = 'O')
46364 ) AND
46365 (l_bflow_method_code = 'PRIOR_ENTRY')
46366 )
46367 THEN
46368 IF
46369 --
46370 1 = 1
46371 --
46372 THEN
46373 xla_accounting_err_pkg.build_message
46374 (p_appli_s_name => 'XLA'
46375 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46376 ,p_token_1 => 'LINE_NUMBER'
46377 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46378 ,p_token_2 => 'LINE_TYPE_NAME'
46379 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46380 l_component_type
46381 ,l_component_code
46382 ,l_component_type_code
46383 ,l_component_appl_id
46384 ,l_amb_context_code
46385 ,l_entity_code
46386 ,l_event_class_code
46387 )
46388 ,p_token_3 => 'OWNER'
46389 ,p_value_3 => xla_lookups_pkg.get_meaning(
46390 p_lookup_type => 'XLA_OWNER_TYPE'
46391 ,p_lookup_code => l_component_type_code
46392 )
46393 ,p_token_4 => 'PRODUCT_NAME'
46394 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46395 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46396 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46397 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46398 ,p_ae_header_id => NULL
46399 );
46400
46401 IF (C_LEVEL_ERROR>= g_log_level) THEN
46402 trace
46403 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46404 ,p_level => C_LEVEL_ERROR
46405 ,p_module => l_log_module);
46406 END IF;
46407 END IF;
46408 END IF;
46409 --
46410 --
46411 ------------------------------------------------------------------------------------------------
46412 -- 4219869 Business Flow
46413 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46414 -- Prior Entry. Currently, the following code is always generated.
46415 ------------------------------------------------------------------------------------------------
46416 -- No ValidateCurrentLine for business flow method of Prior Entry
46417
46418 ------------------------------------------------------------------------------------
46419 -- 4219869 Business Flow
46420 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46424 ----------------------------------------------------------------------------------
46421 ------------------------------------------------------------------------------------
46422 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46423
46425 -- 4219869 Business Flow
46426 -- Update journal entry status -- Need to generate this within IF <condition>
46427 ----------------------------------------------------------------------------------
46428 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46429 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46430 ,p_balance_type_code => l_balance_type_code
46431 );
46432
46433 -------------------------------------------------------------------------------------------
46434 -- 4262811 - Generate the Accrual Reversal lines
46435 -------------------------------------------------------------------------------------------
46436 BEGIN
46437 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46438 (g_array_event(p_event_id).array_value_num('header_index'));
46439 IF l_acc_rev_flag IS NULL THEN
46440 l_acc_rev_flag := 'N';
46441 END IF;
46442 EXCEPTION
46443 WHEN OTHERS THEN
46444 l_acc_rev_flag := 'N';
46445 END;
46446 --
46447 IF (l_acc_rev_flag = 'Y') THEN
46448
46449 -- 4645092 ------------------------------------------------------------------------------
46450 -- To allow MPA report to determine if it should generate report process
46451 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46452 ------------------------------------------------------------------------------------------
46453
46454 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46455 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46456
46457 --
46458 -- Update the line information that should be overwritten
46459 --
46460 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46461 p_header_num => 1);
46462 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46463
46464 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46465
46466 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46467 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46468 END IF;
46469
46470 --
46471 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46472 --
46473 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46474 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46475 ELSE
46476 ---------------------------------------------------------------------------------------------------
46477 -- 4262811a Switch Sign
46478 ---------------------------------------------------------------------------------------------------
46479 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46480 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46481 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46482 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46483 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46484 -- 5132302
46485 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46486 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46487
46488 END IF;
46489
46490 -- 4955764
46491 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46492 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46493
46494
46495 XLA_AE_LINES_PKG.ValidateCurrentLine;
46496 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46497
46498 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46499 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46500 ,p_balance_type_code => l_balance_type_code);
46501
46502 END IF;
46503
46504 -----------------------------------------------------------------------------------------
46505 -- 4262811 Multiperiod Accounting
46506 -----------------------------------------------------------------------------------------
46507 -- No MPA option is assigned.
46508
46509
46510 END IF;
46511 END IF;
46512 --
46513
46514 --
46515 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46516 trace
46517 (p_msg => 'END of AcctLineType_84'
46518 ,p_level => C_LEVEL_PROCEDURE
46519 ,p_module => l_log_module);
46520 END IF;
46521 --
46522 EXCEPTION
46523 WHEN xla_exceptions_pkg.application_exception THEN
46524 RAISE;
46525 WHEN OTHERS THEN
46526 xla_exceptions_pkg.raise_message
46527 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_84');
46528 END AcctLineType_84;
46529 --
46530
46531 ---------------------------------------
46532 --
46533 -- PRIVATE FUNCTION
46534 -- AcctLineType_85
46535 --
46536 ---------------------------------------
46537 PROCEDURE AcctLineType_85 (
46538 p_application_id IN NUMBER
46542 ,p_actual_flag IN OUT VARCHAR2
46539 ,p_event_id IN NUMBER
46540 ,p_calculate_acctd_flag IN VARCHAR2
46541 ,p_calculate_g_l_flag IN VARCHAR2
46543 ,p_balance_type_code OUT VARCHAR2
46544 ,p_gain_or_loss_ref OUT VARCHAR2
46545
46546 --Budget Account
46547 , p_source_9 IN NUMBER
46548 --Main Or Backing Code
46549 , p_source_13 IN VARCHAR2
46550 --Accounting Reversal Flag
46551 , p_source_15 IN VARCHAR2
46552 --Distribution Link Type
46553 , p_source_17 IN VARCHAR2
46554 --Applied To Application Identifier
46555 , p_source_21 IN NUMBER
46556 --Applied To Distribution Link Type
46557 , p_source_22 IN VARCHAR2
46558 --Applied To Entity Code
46559 , p_source_23 IN VARCHAR2
46560 --Applied To Distribution Identifier 1
46561 , p_source_24 IN NUMBER
46562 --Applied To Header Identifier 1
46563 , p_source_25 IN NUMBER
46564 --Entered Amount
46565 , p_source_26 IN NUMBER
46566 --Currency Code
46567 , p_source_27 IN VARCHAR2
46568 --Accounted Amount
46569 , p_source_28 IN NUMBER
46570 --JFMIP Reference
46571 , p_source_31 IN VARCHAR2
46572 --Requisition Distribution Identifier
46573 , p_source_43 IN NUMBER
46574 --Requisition Identifier
46575 , p_source_44 IN NUMBER
46576 --Requisition Encumbrance Upgrade Option
46577 , p_source_45 IN VARCHAR2
46578 --Requisition Upgrade Encumbrance Type Identifier
46579 , p_source_46 IN NUMBER
46580 --Adjustment Status
46581 , p_source_47 IN VARCHAR2
46582 )
46583 IS
46584
46585 l_component_type VARCHAR2(80);
46586 l_component_code VARCHAR2(30);
46587 l_component_type_code VARCHAR2(1);
46588 l_component_appl_id INTEGER;
46589 l_amb_context_code VARCHAR2(30);
46590 l_entity_code VARCHAR2(30);
46591 l_event_class_code VARCHAR2(30);
46592 l_ae_header_id NUMBER;
46593 l_event_type_code VARCHAR2(30);
46594 l_line_definition_code VARCHAR2(30);
46595 l_line_definition_owner_code VARCHAR2(1);
46596 --
46597 -- adr variables
46598 l_segment VARCHAR2(30);
46599 l_ccid NUMBER;
46600 l_adr_transaction_coa_id NUMBER;
46601 l_adr_accounting_coa_id NUMBER;
46602 l_adr_flexfield_segment_code VARCHAR2(30);
46603 l_adr_flex_value_set_id NUMBER;
46604 l_adr_value_type_code VARCHAR2(30);
46605 l_adr_value_combination_id NUMBER;
46606 l_adr_value_segment_code VARCHAR2(30);
46607
46608 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46609 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46610 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46611 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46612
46613 -- 4262811 Variables ------------------------------------------------------------------------------------------
46614 l_entered_amt_idx NUMBER;
46615 l_accted_amt_idx NUMBER;
46616 l_acc_rev_flag VARCHAR2(1);
46617 l_accrual_line_num NUMBER;
46618 l_tmp_amt NUMBER;
46619 l_acc_rev_natural_side_code VARCHAR2(1);
46620
46621 l_num_entries NUMBER;
46622 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46623 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46624 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46625 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46626 l_recog_line_1 NUMBER;
46627 l_recog_line_2 NUMBER;
46628
46629 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46630 l_bflow_applied_to_amt NUMBER; -- 5132302
46631 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46632
46633 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46634
46635 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46636 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46637
46638 ---------------------------------------------------------------------------------------------------------------
46639
46640
46641 --
46642 -- bulk performance
46643 --
46644 l_balance_type_code VARCHAR2(1);
46645 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46646 l_log_module VARCHAR2(240);
46647
46648 --
46649 -- Upgrade strategy
46650 --
46651 l_actual_upg_option VARCHAR2(1);
46652 l_enc_upg_option VARCHAR2(1);
46653
46654 --
46655 BEGIN
46656 --
46657 IF g_log_enabled THEN
46658 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
46659 END IF;
46660 --
46661 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46662
46663 trace
46664 (p_msg => 'BEGIN of AcctLineType_85'
46665 ,p_level => C_LEVEL_PROCEDURE
46666 ,p_module => l_log_module);
46667
46668 END IF;
46669 --
46670 l_component_type := 'AMB_JLT';
46671 l_component_code := 'FV_REQ_UNRESERVE_DR';
46672 l_component_type_code := 'S';
46673 l_component_appl_id := 201;
46674 l_amb_context_code := 'DEFAULT';
46675 l_entity_code := 'REQUISITION';
46676 l_event_class_code := 'REQUISITION';
46677 l_event_type_code := 'REQUISITION_ALL';
46678 l_line_definition_owner_code := 'S';
46679 l_line_definition_code := 'FV_REQ_ALL';
46680 --
46681 l_balance_type_code := 'A';
46682 l_segment := NULL;
46683 l_ccid := NULL;
46684 l_adr_transaction_coa_id := NULL;
46685 l_adr_accounting_coa_id := NULL;
46686 l_adr_flexfield_segment_code := NULL;
46687 l_adr_flex_value_set_id := NULL;
46688 l_adr_value_type_code := NULL;
46689 l_adr_value_combination_id := NULL;
46690 l_adr_value_segment_code := NULL;
46691
46692 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
46693 l_bflow_class_code := 'FV_REQ_CR'; -- 4219869 Business Flow
46694 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
46695 l_budgetary_control_flag := 'Y';
46696
46697 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46698 l_bflow_applied_to_amt := NULL; -- 5132302
46699 l_entered_amt_idx := NULL; -- 4262811
46700 l_accted_amt_idx := NULL; -- 4262811
46701 l_acc_rev_flag := NULL; -- 4262811
46702 l_accrual_line_num := NULL; -- 4262811
46703 l_tmp_amt := NULL; -- 4262811
46704 --
46705
46706 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46707 l_balance_type_code <> 'B' THEN
46708 IF (NVL(
46709 xla_ae_sources_pkg.GetSystemSourceChar(
46710 p_source_code => 'XLA_EVENT_TYPE_CODE'
46711 , p_source_type_code => 'Y'
46712 , p_source_application_id => 602
46713 ),'
46714 ') = 'REQ_UNRESERVED' OR
46715 NVL(
46716 xla_ae_sources_pkg.GetSystemSourceChar(
46717 p_source_code => 'XLA_EVENT_TYPE_CODE'
46718 , p_source_type_code => 'Y'
46719 , p_source_application_id => 602
46720 ),'
46721 ') = 'REQ_FINAL_CLOSED' OR
46722 (NVL(
46723 xla_ae_sources_pkg.GetSystemSourceChar(
46724 p_source_code => 'XLA_EVENT_TYPE_CODE'
46725 , p_source_type_code => 'Y'
46726 , p_source_application_id => 602
46727 ),'
46728 ') = 'REQ_ADJUSTED' AND
46729 NVL(p_source_47,'
46730 ') = 'OLD') OR
46731 NVL(
46732 xla_ae_sources_pkg.GetSystemSourceChar(
46733 p_source_code => 'XLA_EVENT_TYPE_CODE'
46734 , p_source_type_code => 'Y'
46735 , p_source_application_id => 602
46736 ),'
46737 ') = 'REQ_REJECTED' OR
46738 NVL(
46739 xla_ae_sources_pkg.GetSystemSourceChar(
46740 p_source_code => 'XLA_EVENT_TYPE_CODE'
46741 , p_source_type_code => 'Y'
46742 , p_source_application_id => 602
46743 ),'
46744 ') = 'REQ_RETURNED') AND
46745 NVL(p_source_13,'
46746 ') = 'M'
46747 THEN
46748
46749 --
46750 XLA_AE_LINES_PKG.SetNewLine;
46751
46752 p_balance_type_code := l_balance_type_code;
46753 -- set the flag so later we will know whether the gain loss line needs to be created
46754
46755 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46756 p_actual_flag :='A';
46757 END IF;
46758
46759 --
46760 -- bulk performance
46761 --
46762 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46763 p_header_num => 0); -- 4262811
46764 --
46765 -- set accounting line options
46766 --
46767 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46768 p_natural_side_code => 'D'
46769 , p_gain_or_loss_flag => 'N'
46770 , p_gl_transfer_mode_code => 'S'
46771 , p_acct_entry_type_code => 'A'
46772 , p_switch_side_flag => 'N'
46773 , p_merge_duplicate_code => 'N'
46774 );
46775 --
46776 l_acc_rev_natural_side_code := 'C'; -- 4262811
46777 --
46778 --
46779 -- set accounting line type info
46780 --
46781 xla_ae_lines_pkg.SetAcctLineType
46782 (p_component_type => l_component_type
46783 ,p_event_type_code => l_event_type_code
46784 ,p_line_definition_owner_code => l_line_definition_owner_code
46785 ,p_line_definition_code => l_line_definition_code
46786 ,p_accounting_line_code => l_component_code
46787 ,p_accounting_line_type_code => l_component_type_code
46788 ,p_accounting_line_appl_id => l_component_appl_id
46792 --
46789 ,p_amb_context_code => l_amb_context_code
46790 ,p_entity_code => l_entity_code
46791 ,p_event_class_code => l_event_class_code);
46793 -- set accounting class
46794 --
46795 xla_ae_lines_pkg.SetAcctClass(
46796 p_accounting_class_code => 'REQUISITION'
46797 , p_ae_header_id => l_ae_header_id
46798 );
46799
46800 --
46801 -- set rounding class
46802 --
46803 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46804 'REQUISITION';
46805
46806 --
46807 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46808 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46809 --
46810 -- bulk performance
46811 --
46812 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46813
46814 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46815 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46816
46817 -- 4955764
46818 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46819 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46820
46821 -- 4458381 Public Sector Enh
46822
46823 --
46824 -- set accounting attributes for the line type
46825 --
46826 l_entered_amt_idx := 23;
46827 l_accted_amt_idx := 25;
46828 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46829 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46830 l_rec_acct_attrs.array_char_value(1) := p_source_15;
46831 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
46832 l_rec_acct_attrs.array_num_value(2) :=
46833 xla_ae_sources_pkg.GetSystemSourceNum(
46834 p_source_code => 'XLA_EVENT_APPL_ID'
46835 , p_source_type_code => 'Y'
46836 , p_source_application_id => 602
46837 );
46838 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
46839 l_rec_acct_attrs.array_char_value(3) := p_source_17;
46840 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
46841 l_rec_acct_attrs.array_char_value(4) :=
46842 xla_ae_sources_pkg.GetSystemSourceChar(
46843 p_source_code => 'XLA_ENTITY_CODE'
46844 , p_source_type_code => 'Y'
46845 , p_source_application_id => 602
46846 );
46847 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
46848 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_43);
46849 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
46850 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_44);
46851 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
46852 l_rec_acct_attrs.array_num_value(7) := p_source_21;
46853 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46854 l_rec_acct_attrs.array_char_value(8) := p_source_22;
46855 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
46856 l_rec_acct_attrs.array_char_value(9) := p_source_23;
46857 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
46858 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
46859 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46860 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
46861 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
46862 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_43);
46863 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
46864 l_rec_acct_attrs.array_char_value(13) := p_source_17;
46865 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
46866 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_9);
46867 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
46868 l_rec_acct_attrs.array_num_value(15) := p_source_26;
46869 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
46870 l_rec_acct_attrs.array_char_value(16) := p_source_27;
46871 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
46872 l_rec_acct_attrs.array_num_value(17) := p_source_28;
46873 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
46874 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_9);
46875 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
46876 l_rec_acct_attrs.array_num_value(19) := p_source_26;
46877 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
46878 l_rec_acct_attrs.array_char_value(20) := p_source_27;
46879 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
46880 l_rec_acct_attrs.array_num_value(21) := p_source_28;
46881 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
46882 l_rec_acct_attrs.array_char_value(22) := p_source_45;
46883 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
46884 l_rec_acct_attrs.array_num_value(23) := p_source_26;
46885 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
46886 l_rec_acct_attrs.array_char_value(24) := p_source_27;
46887 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
46888 l_rec_acct_attrs.array_num_value(25) := p_source_28;
46889 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
46890 l_rec_acct_attrs.array_char_value(26) := p_source_31;
46891 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
46892 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_24);
46893 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
46894 l_rec_acct_attrs.array_char_value(28) := p_source_22;
46895 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
46896 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_43);
46897 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
46898 l_rec_acct_attrs.array_num_value(30) := p_source_46;
46899 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
46900 l_rec_acct_attrs.array_num_value(31) := p_source_46;
46901
46902 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46903 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46904
46905 ---------------------------------------------------------------------------------------------------------------
46906 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46907 ---------------------------------------------------------------------------------------------------------------
46908 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46909
46910 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46911 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46912
46913 IF xla_accounting_cache_pkg.GetValueChar
46914 (p_source_code => 'LEDGER_CATEGORY_CODE'
46915 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46916 AND l_bflow_method_code = 'PRIOR_ENTRY'
46917 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46918 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46919 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46920 )
46921 THEN
46922 xla_ae_lines_pkg.BflowUpgEntry
46923 (p_business_method_code => l_bflow_method_code
46924 ,p_business_class_code => l_bflow_class_code
46925 ,p_balance_type => l_balance_type_code);
46926 ELSE
46927 NULL;
46928 XLA_AE_LINES_PKG.business_flow_validation(
46929 p_business_method_code => l_bflow_method_code
46930 ,p_business_class_code => l_bflow_class_code
46931 ,p_inherit_description_flag => l_inherit_desc_flag);
46932 END IF;
46933
46934 --
46935 -- call analytical criteria
46936 --
46937 -- Inherited Analytical Criteria for business flow method of Prior Entry.
46938 --
46939 -- call description
46940 --
46941 -- No description or it is inherited.
46942 --
46943 -- call ADRs
46944 -- Bug 4922099
46945 --
46946 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46947 (NVL(l_actual_upg_option, 'N') = 'O') OR
46948 (NVL(l_enc_upg_option, 'N') = 'O')
46949 )
46950 THEN
46951 NULL;
46952 --
46953 --
46954
46955 --
46956 --
46957 END IF;
46958 --
46959 -- Bug 4922099
46960 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46961 (NVL(l_enc_upg_option, 'N') = 'O')
46962 ) AND
46963 (l_bflow_method_code = 'PRIOR_ENTRY')
46964 )
46965 THEN
46966 IF
46967 --
46968 1 = 1
46969 --
46970 THEN
46971 xla_accounting_err_pkg.build_message
46972 (p_appli_s_name => 'XLA'
46973 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46974 ,p_token_1 => 'LINE_NUMBER'
46975 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46976 ,p_token_2 => 'LINE_TYPE_NAME'
46977 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46978 l_component_type
46979 ,l_component_code
46980 ,l_component_type_code
46981 ,l_component_appl_id
46982 ,l_amb_context_code
46983 ,l_entity_code
46984 ,l_event_class_code
46985 )
46986 ,p_token_3 => 'OWNER'
46987 ,p_value_3 => xla_lookups_pkg.get_meaning(
46988 p_lookup_type => 'XLA_OWNER_TYPE'
46989 ,p_lookup_code => l_component_type_code
46990 )
46991 ,p_token_4 => 'PRODUCT_NAME'
46992 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46993 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46994 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46995 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46996 ,p_ae_header_id => NULL
46997 );
46998
46999 IF (C_LEVEL_ERROR>= g_log_level) THEN
47000 trace
47001 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47002 ,p_level => C_LEVEL_ERROR
47003 ,p_module => l_log_module);
47004 END IF;
47005 END IF;
47006 END IF;
47007 --
47008 --
47009 ------------------------------------------------------------------------------------------------
47010 -- 4219869 Business Flow
47011 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47012 -- Prior Entry. Currently, the following code is always generated.
47013 ------------------------------------------------------------------------------------------------
47014 -- No ValidateCurrentLine for business flow method of Prior Entry
47015
47016 ------------------------------------------------------------------------------------
47017 -- 4219869 Business Flow
47018 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47019 ------------------------------------------------------------------------------------
47020 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47021
47022 ----------------------------------------------------------------------------------
47023 -- 4219869 Business Flow
47024 -- Update journal entry status -- Need to generate this within IF <condition>
47025 ----------------------------------------------------------------------------------
47026 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47027 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47028 ,p_balance_type_code => l_balance_type_code
47029 );
47030
47031 -------------------------------------------------------------------------------------------
47032 -- 4262811 - Generate the Accrual Reversal lines
47033 -------------------------------------------------------------------------------------------
47034 BEGIN
47035 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47036 (g_array_event(p_event_id).array_value_num('header_index'));
47037 IF l_acc_rev_flag IS NULL THEN
47038 l_acc_rev_flag := 'N';
47039 END IF;
47040 EXCEPTION
47041 WHEN OTHERS THEN
47042 l_acc_rev_flag := 'N';
47043 END;
47044 --
47045 IF (l_acc_rev_flag = 'Y') THEN
47046
47047 -- 4645092 ------------------------------------------------------------------------------
47048 -- To allow MPA report to determine if it should generate report process
47049 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47050 ------------------------------------------------------------------------------------------
47051
47052 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47053 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47054
47055 --
47056 -- Update the line information that should be overwritten
47057 --
47058 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47059 p_header_num => 1);
47060 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47061
47062 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47063
47064 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47065 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47066 END IF;
47067
47068 --
47069 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47070 --
47071 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47072 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47073 ELSE
47074 ---------------------------------------------------------------------------------------------------
47075 -- 4262811a Switch Sign
47076 ---------------------------------------------------------------------------------------------------
47077 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47078 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47079 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47080 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47081 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47082 -- 5132302
47083 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47084 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47085
47086 END IF;
47087
47088 -- 4955764
47089 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47090 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47091
47092
47093 XLA_AE_LINES_PKG.ValidateCurrentLine;
47094 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47095
47096 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47097 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47098 ,p_balance_type_code => l_balance_type_code);
47099
47100 END IF;
47101
47102 -----------------------------------------------------------------------------------------
47103 -- 4262811 Multiperiod Accounting
47104 -----------------------------------------------------------------------------------------
47105 -- No MPA option is assigned.
47106
47107
47108 END IF;
47109 END IF;
47110 --
47111
47112 --
47113 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47114 trace
47115 (p_msg => 'END of AcctLineType_85'
47116 ,p_level => C_LEVEL_PROCEDURE
47117 ,p_module => l_log_module);
47118 END IF;
47119 --
47120 EXCEPTION
47121 WHEN xla_exceptions_pkg.application_exception THEN
47122 RAISE;
47123 WHEN OTHERS THEN
47124 xla_exceptions_pkg.raise_message
47125 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.AcctLineType_85');
47126 END AcctLineType_85;
47127 --
47128
47129 ---------------------------------------
47130 --
47131 -- PRIVATE PROCEDURE
47132 -- insert_sources_86
47133 --
47134 ----------------------------------------
47135 --
47136 PROCEDURE insert_sources_86(
47137 p_target_ledger_id IN NUMBER
47138 , p_language IN VARCHAR2
47139 , p_sla_ledger_id IN NUMBER
47140 , p_pad_start_date IN DATE
47141 , p_pad_end_date IN DATE
47142 )
47143 IS
47144
47145 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PO_PA_ALL';
47146 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PO_PA';
47147 p_apps_owner VARCHAR2(30);
47148 l_log_module VARCHAR2(240);
47149 BEGIN
47150 IF g_log_enabled THEN
47151 l_log_module := C_DEFAULT_MODULE||'.insert_sources_86';
47152 END IF;
47153 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47154
47155 trace
47156 (p_msg => 'BEGIN of insert_sources_86'
47157 ,p_level => C_LEVEL_PROCEDURE
47158 ,p_module => l_log_module);
47159
47160 END IF;
47161
47162 -- select APPS owner
47163 SELECT oracle_username
47164 INTO p_apps_owner
47165 FROM fnd_oracle_userid
47166 WHERE read_only_flag = 'U'
47167 ;
47168
47169 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
47170 trace
47171 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
47172 ' - p_language = '||p_language||
47173 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
47174 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
47175 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
47176 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
47177 ,p_level => C_LEVEL_STATEMENT
47178 ,p_module => l_log_module);
47179 END IF;
47180
47181
47182 --
47183 INSERT INTO xla_diag_sources --hdr2
47184 (
47185 event_id
47186 , ledger_id
47187 , sla_ledger_id
47188 , description_language
47189 , object_name
47190 , object_type_code
47191 , line_number
47192 , source_application_id
47193 , source_type_code
47194 , source_code
47195 , source_value
47196 , source_meaning
47197 , created_by
47198 , creation_date
47199 , last_update_date
47200 , last_updated_by
47201 , last_update_login
47202 , program_update_date
47203 , program_application_id
47204 , program_id
47205 , request_id
47206 )
47207 SELECT
47208 event_id
47209 , p_target_ledger_id
47210 , p_sla_ledger_id
47211 , p_language
47212 , object_name
47213 , object_type_code
47214 , line_number
47215 , source_application_id
47216 , source_type_code
47217 , source_code
47218 , SUBSTR(source_value ,1,1996)
47219 , SUBSTR(source_meaning ,1,200)
47220 , xla_environment_pkg.g_Usr_Id
47221 , TRUNC(SYSDATE)
47222 , TRUNC(SYSDATE)
47223 , xla_environment_pkg.g_Usr_Id
47224 , xla_environment_pkg.g_Login_Id
47225 , TRUNC(SYSDATE)
47226 , xla_environment_pkg.g_Prog_Appl_Id
47227 , xla_environment_pkg.g_Prog_Id
47228 , xla_environment_pkg.g_Req_Id
47229 FROM (
47230 SELECT xet.event_id event_id
47231 , 0 line_number
47232 , CASE r
47233 WHEN 1 THEN 'PO_EXTRACT_HEADER_V'
47234 WHEN 2 THEN 'PO_EXTRACT_HEADER_V'
47235 WHEN 3 THEN 'PO_EXTRACT_HEADER_V'
47236 WHEN 4 THEN 'PO_EXTRACT_HEADER_V'
47237 WHEN 5 THEN 'PO_EXTRACT_HEADER_V'
47238
47239 ELSE null
47240 END object_name
47241 , CASE r
47242 WHEN 1 THEN 'HEADER'
47243 WHEN 2 THEN 'HEADER'
47244 WHEN 3 THEN 'HEADER'
47245 WHEN 4 THEN 'HEADER'
47246 WHEN 5 THEN 'HEADER'
47247
47248 ELSE null
47249 END object_type_code
47250 , CASE r
47251 WHEN 1 THEN '201'
47252 WHEN 2 THEN '201'
47253 WHEN 3 THEN '201'
47254 WHEN 4 THEN '201'
47255 WHEN 5 THEN '201'
47256
47257 ELSE null
47258 END source_application_id
47259 , 'S' source_type_code
47260 , CASE r
47261 WHEN 1 THEN 'PO_TYPE'
47262 WHEN 2 THEN 'PO_NUMBER'
47263 WHEN 3 THEN 'PO_HEADER_ID'
47264 WHEN 4 THEN 'ENCUMBRANCE_TYPE_ID'
47265 WHEN 5 THEN 'GL_DATE'
47266
47267 ELSE null
47268 END source_code
47269 , CASE r
47270 WHEN 1 THEN TO_CHAR(h4.PO_TYPE)
47271 WHEN 2 THEN TO_CHAR(h4.PO_NUMBER)
47272 WHEN 3 THEN TO_CHAR(h4.PO_HEADER_ID)
47273 WHEN 4 THEN TO_CHAR(h4.ENCUMBRANCE_TYPE_ID)
47274 WHEN 5 THEN TO_CHAR(h4.GL_DATE)
47275
47276 ELSE null
47277 END source_value
47278 , null source_meaning
47279 FROM xla_events_gt xet
47280 , PO_EXTRACT_HEADER_V h4
47281 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
47282 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
47283 AND xet.event_class_code = C_EVENT_CLASS_CODE
47284 AND h4.event_id = xet.event_id
47285
47286 )
47287 ;
47288 --
47289 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
47290
47291 trace
47292 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
47293 ,p_level => C_LEVEL_STATEMENT
47294 ,p_module => l_log_module);
47295
47296 END IF;
47297 --
47298
47299
47300
47301 --
47302 INSERT INTO xla_diag_sources --line2
47303 (
47304 event_id
47305 , ledger_id
47306 , sla_ledger_id
47307 , description_language
47308 , object_name
47309 , object_type_code
47310 , line_number
47311 , source_application_id
47312 , source_type_code
47313 , source_code
47314 , source_value
47315 , source_meaning
47316 , created_by
47317 , creation_date
47318 , last_update_date
47319 , last_updated_by
47320 , last_update_login
47321 , program_update_date
47322 , program_application_id
47323 , program_id
47324 , request_id
47325 )
47326 SELECT event_id
47327 , p_target_ledger_id
47328 , p_sla_ledger_id
47332 , line_number
47329 , p_language
47330 , object_name
47331 , object_type_code
47333 , source_application_id
47334 , source_type_code
47335 , source_code
47336 , SUBSTR(source_value,1,1996)
47337 , SUBSTR(source_meaning ,1,200)
47338 , xla_environment_pkg.g_Usr_Id
47339 , TRUNC(SYSDATE)
47340 , TRUNC(SYSDATE)
47341 , xla_environment_pkg.g_Usr_Id
47342 , xla_environment_pkg.g_Login_Id
47343 , TRUNC(SYSDATE)
47344 , xla_environment_pkg.g_Prog_Appl_Id
47345 , xla_environment_pkg.g_Prog_Id
47346 , xla_environment_pkg.g_Req_Id
47347 FROM (
47348 SELECT xet.event_id event_id
47349 , l3.line_number line_number
47350 , CASE r
47351 WHEN 1 THEN 'PO_EXTRACT_DETAIL_V'
47352 WHEN 2 THEN 'FV_XLA_PO_REF_V'
47353 WHEN 3 THEN 'FV_XLA_PO_REF_V'
47354 WHEN 4 THEN 'PO_EXTRACT_DETAIL_V'
47355 WHEN 5 THEN 'FV_XLA_PO_REF_V'
47356 WHEN 6 THEN 'FV_XLA_PO_REF_V'
47357 WHEN 7 THEN 'PO_EXTRACT_DETAIL_V'
47358 WHEN 8 THEN 'PO_EXTRACT_DETAIL_V'
47359 WHEN 9 THEN 'PO_EXTRACT_DETAIL_V'
47360 WHEN 10 THEN 'PO_EXTRACT_DETAIL_V'
47361 WHEN 11 THEN 'PO_EXTRACT_DETAIL_V'
47362 WHEN 12 THEN 'PO_EXTRACT_DETAIL_V'
47363 WHEN 13 THEN 'PO_EXTRACT_DETAIL_V'
47364 WHEN 14 THEN 'PO_EXTRACT_DETAIL_V'
47365 WHEN 15 THEN 'PO_EXTRACT_DETAIL_V'
47366 WHEN 16 THEN 'PO_EXTRACT_DETAIL_V'
47367 WHEN 17 THEN 'PO_EXTRACT_DETAIL_V'
47368 WHEN 18 THEN 'PO_EXTRACT_DETAIL_V'
47369 WHEN 19 THEN 'PO_EXTRACT_DETAIL_V'
47370 WHEN 20 THEN 'PO_EXTRACT_DETAIL_V'
47371 WHEN 21 THEN 'FV_XLA_PO_REF_V'
47372 WHEN 22 THEN 'PO_EXTRACT_DETAIL_V'
47373 WHEN 23 THEN 'PO_EXTRACT_DETAIL_V'
47374 WHEN 24 THEN 'PO_EXTRACT_DETAIL_V'
47375 WHEN 25 THEN 'PO_EXTRACT_DETAIL_V'
47376 WHEN 26 THEN 'PO_DISTS_REF_V'
47377 WHEN 27 THEN 'PO_DISTS_REF_V'
47378 WHEN 28 THEN 'PO_DISTS_REF_V'
47379 WHEN 29 THEN 'FV_XLA_PO_REF_V'
47380 WHEN 30 THEN 'FV_XLA_PO_REF_V'
47381 WHEN 31 THEN 'FV_XLA_PO_REF_V'
47382
47383 ELSE null
47384 END object_name
47385 , CASE r
47386 WHEN 1 THEN 'LINE'
47387 WHEN 2 THEN 'LINE'
47388 WHEN 3 THEN 'LINE'
47389 WHEN 4 THEN 'LINE'
47390 WHEN 5 THEN 'LINE'
47391 WHEN 6 THEN 'LINE'
47392 WHEN 7 THEN 'LINE'
47393 WHEN 8 THEN 'LINE'
47394 WHEN 9 THEN 'LINE'
47395 WHEN 10 THEN 'LINE'
47396 WHEN 11 THEN 'LINE'
47397 WHEN 12 THEN 'LINE'
47398 WHEN 13 THEN 'LINE'
47399 WHEN 14 THEN 'LINE'
47400 WHEN 15 THEN 'LINE'
47401 WHEN 16 THEN 'LINE'
47402 WHEN 17 THEN 'LINE'
47403 WHEN 18 THEN 'LINE'
47404 WHEN 19 THEN 'LINE'
47405 WHEN 20 THEN 'LINE'
47406 WHEN 21 THEN 'LINE'
47407 WHEN 22 THEN 'LINE'
47408 WHEN 23 THEN 'LINE'
47409 WHEN 24 THEN 'LINE'
47410 WHEN 25 THEN 'LINE'
47411 WHEN 26 THEN 'LINE'
47412 WHEN 27 THEN 'LINE'
47413 WHEN 28 THEN 'LINE'
47414 WHEN 29 THEN 'LINE'
47415 WHEN 30 THEN 'LINE'
47416 WHEN 31 THEN 'LINE'
47417
47418 ELSE null
47419 END object_type_code
47420 , CASE r
47421 WHEN 1 THEN '201'
47422 WHEN 2 THEN '8901'
47423 WHEN 3 THEN '8901'
47424 WHEN 4 THEN '201'
47425 WHEN 5 THEN '8901'
47426 WHEN 6 THEN '8901'
47427 WHEN 7 THEN '201'
47428 WHEN 8 THEN '201'
47429 WHEN 9 THEN '201'
47430 WHEN 10 THEN '201'
47431 WHEN 11 THEN '201'
47432 WHEN 12 THEN '201'
47433 WHEN 13 THEN '201'
47434 WHEN 14 THEN '201'
47435 WHEN 15 THEN '201'
47436 WHEN 16 THEN '201'
47437 WHEN 17 THEN '201'
47438 WHEN 18 THEN '201'
47439 WHEN 19 THEN '201'
47440 WHEN 20 THEN '201'
47441 WHEN 21 THEN '8901'
47442 WHEN 22 THEN '201'
47443 WHEN 23 THEN '201'
47444 WHEN 24 THEN '201'
47445 WHEN 25 THEN '201'
47446 WHEN 26 THEN '201'
47447 WHEN 27 THEN '201'
47448 WHEN 28 THEN '201'
47449 WHEN 29 THEN '8901'
47450 WHEN 30 THEN '8901'
47451 WHEN 31 THEN '8901'
47452
47453 ELSE null
47454 END source_application_id
47455 , 'S' source_type_code
47456 , CASE r
47457 WHEN 1 THEN 'JE_LINE_DESCRIPTION'
47458 WHEN 2 THEN 'FEDERAL_FUND_CATEGORY'
47459 WHEN 3 THEN 'FEDERAL_FUND_EXPIRED_STATUS'
47460 WHEN 4 THEN 'BUDGET_ACCOUNT'
47461 WHEN 5 THEN 'FEDERAL_PRIOR_YEAR_FLAG'
47462 WHEN 6 THEN 'FEDERAL_NET_PYA_ADJ_AMT'
47463 WHEN 7 THEN 'MAIN_OR_BACKING_CODE'
47464 WHEN 8 THEN 'PO_DISTRIBUTION_TYPE'
47465 WHEN 9 THEN 'ACCOUNTING_REVERSAL_FLAG'
47466 WHEN 10 THEN 'DISTRIBUTION_LINK_TYPE'
47467 WHEN 11 THEN 'PO_DISTRIBUTION_ID'
47468 WHEN 12 THEN 'APPLIED_TO_APPL_ID'
47469 WHEN 13 THEN 'APPLIED_TO_DIST_LINK_TYPE'
47470 WHEN 14 THEN 'APPLIED_TO_ENTITY_CODE'
47471 WHEN 15 THEN 'APPLIED_TO_DIST_ID_1'
47472 WHEN 16 THEN 'APPLIED_TO_HEADER_ID_1'
47473 WHEN 17 THEN 'ENTERED_AMT'
47474 WHEN 18 THEN 'CURRENCY_CODE'
47475 WHEN 19 THEN 'ACCOUNTED_AMT'
47476 WHEN 20 THEN 'PO_ENCUM_UPG_OPTION'
47477 WHEN 21 THEN 'FEDERAL_UNANTICIPATED_AMT'
47478 WHEN 22 THEN 'JFMIP_REFERENCE'
47479 WHEN 23 THEN 'PO_UPG_ENC_TYPE_ID'
47480 WHEN 24 THEN 'ALLOC_TO_DISTRIBUTION_TYPE'
47481 WHEN 25 THEN 'ALLOC_TO_DIST_ID_1'
47482 WHEN 26 THEN 'CURRENCY_CONVERSION_DATE'
47483 WHEN 27 THEN 'CURRENCY_CONVERSION_RATE'
47484 WHEN 28 THEN 'CURRENCY_CONVERSION_TYPE'
47485 WHEN 29 THEN 'FEDERAL_PYA_DIFF_AMT'
47486 WHEN 30 THEN 'FEDERAL_ANTICIPATED_AMT'
47487 WHEN 31 THEN 'FEDERAL_PYA_AMT'
47488
47489 ELSE null
47490 END source_code
47491 , CASE r
47492 WHEN 1 THEN TO_CHAR(l3.JE_LINE_DESCRIPTION)
47493 WHEN 2 THEN TO_CHAR(l1.FEDERAL_FUND_CATEGORY)
47494 WHEN 3 THEN TO_CHAR(l1.FEDERAL_FUND_EXPIRED_STATUS)
47495 WHEN 4 THEN TO_CHAR(l3.BUDGET_ACCOUNT)
47496 WHEN 5 THEN TO_CHAR(l1.FEDERAL_PRIOR_YEAR_FLAG)
47497 WHEN 6 THEN TO_CHAR(l1.FEDERAL_NET_PYA_ADJ_AMT)
47498 WHEN 7 THEN TO_CHAR(l3.MAIN_OR_BACKING_CODE)
47499 WHEN 8 THEN TO_CHAR(l3.PO_DISTRIBUTION_TYPE)
47500 WHEN 9 THEN TO_CHAR(l3.ACCOUNTING_REVERSAL_FLAG)
47501 WHEN 10 THEN TO_CHAR(l3.DISTRIBUTION_LINK_TYPE)
47502 WHEN 11 THEN TO_CHAR(l3.PO_DISTRIBUTION_ID)
47503 WHEN 12 THEN TO_CHAR(l3.APPLIED_TO_APPL_ID)
47504 WHEN 13 THEN TO_CHAR(l3.APPLIED_TO_DIST_LINK_TYPE)
47505 WHEN 14 THEN TO_CHAR(l3.APPLIED_TO_ENTITY_CODE)
47506 WHEN 15 THEN TO_CHAR(l3.APPLIED_TO_DIST_ID_1)
47507 WHEN 16 THEN TO_CHAR(l3.APPLIED_TO_HEADER_ID_1)
47508 WHEN 17 THEN TO_CHAR(l3.ENTERED_AMT)
47509 WHEN 18 THEN TO_CHAR(l3.CURRENCY_CODE)
47510 WHEN 19 THEN TO_CHAR(l3.ACCOUNTED_AMT)
47511 WHEN 20 THEN TO_CHAR(l3.PO_ENCUM_UPG_OPTION)
47512 WHEN 21 THEN TO_CHAR(l1.FEDERAL_UNANTICIPATED_AMT)
47513 WHEN 22 THEN TO_CHAR(l3.JFMIP_REFERENCE)
47514 WHEN 23 THEN TO_CHAR(l3.PO_UPG_ENC_TYPE_ID)
47515 WHEN 24 THEN TO_CHAR(l3.ALLOC_TO_DISTRIBUTION_TYPE)
47516 WHEN 25 THEN TO_CHAR(l3.ALLOC_TO_DIST_ID_1)
47517 WHEN 26 THEN TO_CHAR(l2.CURRENCY_CONVERSION_DATE)
47518 WHEN 27 THEN TO_CHAR(l2.CURRENCY_CONVERSION_RATE)
47519 WHEN 28 THEN TO_CHAR(l2.CURRENCY_CONVERSION_TYPE)
47520 WHEN 29 THEN TO_CHAR(l1.FEDERAL_PYA_DIFF_AMT)
47521 WHEN 30 THEN TO_CHAR(l1.FEDERAL_ANTICIPATED_AMT)
47522 WHEN 31 THEN TO_CHAR(l1.FEDERAL_PYA_AMT)
47523
47524 ELSE null
47525 END source_value
47526 , null source_meaning
47527 FROM xla_events_gt xet
47528 , FV_XLA_PO_REF_V l1
47529 , PO_DISTS_REF_V l2
47530 , PO_EXTRACT_DETAIL_V l3
47531 , (select rownum r from all_objects where rownum <= 31 and owner = p_apps_owner)
47532 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
47533 AND xet.event_class_code = C_EVENT_CLASS_CODE
47534 AND l3.event_id = xet.event_id
47535 AND l1.federal_event_id (+) = l3.event_id and l1.federal_line_number (+) = l3.line_number AND l3.po_distribution_id = l2.po_distribution_id (+) and l3.po_distribution_type = l2.po_distribution_type (+)
47536 )
47537 ;
47538 --
47539 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
47540
47541 trace
47542 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
47543 ,p_level => C_LEVEL_STATEMENT
47544 ,p_module => l_log_module);
47545
47546 END IF;
47547
47548
47549 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47550 trace
47551 (p_msg => 'END of insert_sources_86'
47552 ,p_level => C_LEVEL_PROCEDURE
47553 ,p_module => l_log_module);
47554 END IF;
47555 EXCEPTION
47556 WHEN xla_exceptions_pkg.application_exception THEN
47557 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
47558 trace
47559 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
47560 ,p_level => C_LEVEL_EXCEPTION
47561 ,p_module => l_log_module);
47562 END IF;
47563 RAISE;
47564 WHEN OTHERS THEN
47565 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
47566 trace
47567 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
47568 ,p_level => C_LEVEL_EXCEPTION
47569 ,p_module => l_log_module);
47570 END IF;
47571 xla_exceptions_pkg.raise_message
47572 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.insert_sources_86');
47573 END insert_sources_86;
47574 --
47575
47576 ---------------------------------------
47577 --
47578 -- PRIVATE FUNCTION
47579 -- EventClass_86
47580 --
47581 ----------------------------------------
47582 --
47583 FUNCTION EventClass_86
47584 (p_application_id IN NUMBER
47585 ,p_base_ledger_id IN NUMBER
47586 ,p_target_ledger_id IN NUMBER
47587 ,p_language IN VARCHAR2
47588 ,p_currency_code IN VARCHAR2
47589 ,p_sla_ledger_id IN NUMBER
47590 ,p_pad_start_date IN DATE
47591 ,p_pad_end_date IN DATE
47592 ,p_primary_ledger_id IN NUMBER)
47593 RETURN BOOLEAN IS
47594 --
47595 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PO_PA_ALL';
47596 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PO_PA';
47597
47598 l_calculate_acctd_flag VARCHAR2(1) :='N';
47599 l_calculate_g_l_flag VARCHAR2(1) :='N';
47600 --
47601 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
47602 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
47603 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
47604 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
47605 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
47606 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
47607 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
47608 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
47609 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
47610 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
47611 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
47612 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
47613 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
47614 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
47615 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
47616 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
47617 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
47618 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
47619 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
47620 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
47621 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
47622 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
47623 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
47624 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
47625
47626 l_event_id NUMBER;
47627 l_previous_event_id NUMBER;
47628 l_first_event_id NUMBER;
47629 l_last_event_id NUMBER;
47630
47631 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
47632 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47633 --
47634 --
47635 l_result BOOLEAN := TRUE;
47636 l_rows NUMBER := 1000;
47637 l_event_type_name VARCHAR2(80) := 'All';
47638 l_event_class_name VARCHAR2(80) := 'Purchase Order and Agreement';
47639 l_description VARCHAR2(4000);
47640 l_transaction_reversal NUMBER;
47641 l_ae_header_id NUMBER;
47642 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
47643 l_log_module VARCHAR2(240);
47644 --
47645 l_acct_reversal_source VARCHAR2(30);
47646 l_trx_reversal_source VARCHAR2(30);
47647
47648 l_continue_with_lines BOOLEAN := TRUE;
47649 --
47650 l_acc_rev_gl_date_source DATE; -- 4262811
47651 --
47652 type t_array_event_id is table of number index by binary_integer;
47653
47654 l_rec_array_event t_rec_array_event;
47655 l_null_rec_array_event t_rec_array_event;
47656 l_array_ae_header_id xla_number_array_type;
47657 l_actual_flag VARCHAR2(1) := NULL;
47658 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
47659 l_balance_type_code VARCHAR2(1) :=NULL;
47660 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
47661
47662 --
47663 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
47664 --
47665
47666 TYPE t_array_source_1 IS TABLE OF PO_EXTRACT_HEADER_V.PO_TYPE%TYPE INDEX BY BINARY_INTEGER;
47670 TYPE t_array_source_49 IS TABLE OF PO_EXTRACT_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
47667 TYPE t_array_source_2 IS TABLE OF PO_EXTRACT_HEADER_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
47668 TYPE t_array_source_20 IS TABLE OF PO_EXTRACT_HEADER_V.PO_HEADER_ID%TYPE INDEX BY BINARY_INTEGER;
47669 TYPE t_array_source_48 IS TABLE OF PO_EXTRACT_HEADER_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
47671
47672 TYPE t_array_source_3 IS TABLE OF PO_EXTRACT_DETAIL_V.JE_LINE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
47673 TYPE t_array_source_7 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_FUND_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
47674 TYPE t_array_source_8 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_FUND_EXPIRED_STATUS%TYPE INDEX BY BINARY_INTEGER;
47675 TYPE t_array_source_9 IS TABLE OF PO_EXTRACT_DETAIL_V.BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
47676 TYPE t_array_source_10 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_PRIOR_YEAR_FLAG%TYPE INDEX BY BINARY_INTEGER;
47677 TYPE t_array_source_11 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_NET_PYA_ADJ_AMT%TYPE INDEX BY BINARY_INTEGER;
47678 TYPE t_array_source_13 IS TABLE OF PO_EXTRACT_DETAIL_V.MAIN_OR_BACKING_CODE%TYPE INDEX BY BINARY_INTEGER;
47679 TYPE t_array_source_14 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
47680 TYPE t_array_source_15 IS TABLE OF PO_EXTRACT_DETAIL_V.ACCOUNTING_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
47681 TYPE t_array_source_17 IS TABLE OF PO_EXTRACT_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
47682 TYPE t_array_source_19 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
47683 TYPE t_array_source_21 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
47684 TYPE t_array_source_22 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
47685 TYPE t_array_source_23 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
47686 TYPE t_array_source_24 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_DIST_ID_1%TYPE INDEX BY BINARY_INTEGER;
47687 TYPE t_array_source_25 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_HEADER_ID_1%TYPE INDEX BY BINARY_INTEGER;
47688 TYPE t_array_source_26 IS TABLE OF PO_EXTRACT_DETAIL_V.ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
47689 TYPE t_array_source_27 IS TABLE OF PO_EXTRACT_DETAIL_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
47690 TYPE t_array_source_28 IS TABLE OF PO_EXTRACT_DETAIL_V.ACCOUNTED_AMT%TYPE INDEX BY BINARY_INTEGER;
47691 TYPE t_array_source_29 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
47692 TYPE t_array_source_30 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_UNANTICIPATED_AMT%TYPE INDEX BY BINARY_INTEGER;
47693 TYPE t_array_source_31 IS TABLE OF PO_EXTRACT_DETAIL_V.JFMIP_REFERENCE%TYPE INDEX BY BINARY_INTEGER;
47694 TYPE t_array_source_32 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_UPG_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
47695 TYPE t_array_source_33 IS TABLE OF PO_EXTRACT_DETAIL_V.ALLOC_TO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
47696 TYPE t_array_source_34 IS TABLE OF PO_EXTRACT_DETAIL_V.ALLOC_TO_DIST_ID_1%TYPE INDEX BY BINARY_INTEGER;
47697 TYPE t_array_source_35 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
47698 TYPE t_array_source_36 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
47699 TYPE t_array_source_37 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
47700 TYPE t_array_source_38 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_PYA_DIFF_AMT%TYPE INDEX BY BINARY_INTEGER;
47701 TYPE t_array_source_39 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_ANTICIPATED_AMT%TYPE INDEX BY BINARY_INTEGER;
47702 TYPE t_array_source_40 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_PYA_AMT%TYPE INDEX BY BINARY_INTEGER;
47703
47704 l_array_source_1 t_array_source_1;
47705 l_array_source_2 t_array_source_2;
47706 l_array_source_20 t_array_source_20;
47707 l_array_source_48 t_array_source_48;
47708 l_array_source_49 t_array_source_49;
47709
47710 l_array_source_3 t_array_source_3;
47711 l_array_source_7 t_array_source_7;
47712 l_array_source_8 t_array_source_8;
47713 l_array_source_9 t_array_source_9;
47714 l_array_source_10 t_array_source_10;
47715 l_array_source_11 t_array_source_11;
47716 l_array_source_13 t_array_source_13;
47717 l_array_source_14 t_array_source_14;
47718 l_array_source_15 t_array_source_15;
47719 l_array_source_17 t_array_source_17;
47720 l_array_source_19 t_array_source_19;
47721 l_array_source_21 t_array_source_21;
47722 l_array_source_22 t_array_source_22;
47723 l_array_source_23 t_array_source_23;
47724 l_array_source_24 t_array_source_24;
47725 l_array_source_25 t_array_source_25;
47726 l_array_source_26 t_array_source_26;
47727 l_array_source_27 t_array_source_27;
47728 l_array_source_28 t_array_source_28;
47729 l_array_source_29 t_array_source_29;
47730 l_array_source_30 t_array_source_30;
47731 l_array_source_31 t_array_source_31;
47732 l_array_source_32 t_array_source_32;
47733 l_array_source_33 t_array_source_33;
47734 l_array_source_34 t_array_source_34;
47735 l_array_source_35 t_array_source_35;
47736 l_array_source_36 t_array_source_36;
47737 l_array_source_37 t_array_source_37;
47738 l_array_source_38 t_array_source_38;
47739 l_array_source_39 t_array_source_39;
47740 l_array_source_40 t_array_source_40;
47741
47742 --
47743 CURSOR header_cur
47744 IS
47745 SELECT /*+ leading(xet) cardinality(xet,1) */
47746 -- Event Class Code: PO_PA
47747 xet.entity_id
47748 ,xet.legal_entity_id
47749 ,xet.entity_code
47750 ,xet.transaction_number
47751 ,xet.event_id
47752 ,xet.event_class_code
47753 ,xet.event_type_code
47754 ,xet.event_number
47755 ,xet.event_date
47756 ,xet.transaction_date
47757 ,xet.reference_num_1
47758 ,xet.reference_num_2
47759 ,xet.reference_num_3
47760 ,xet.reference_num_4
47761 ,xet.reference_char_1
47762 ,xet.reference_char_2
47763 ,xet.reference_char_3
47764 ,xet.reference_char_4
47765 ,xet.reference_date_1
47766 ,xet.reference_date_2
47767 ,xet.reference_date_3
47768 ,xet.reference_date_4
47769 ,xet.event_created_by
47770 ,xet.budgetary_control_flag
47771 , h4.PO_TYPE source_1
47772 , h4.PO_NUMBER source_2
47773 , h4.PO_HEADER_ID source_20
47774 , h4.ENCUMBRANCE_TYPE_ID source_48
47775 , h4.GL_DATE source_49
47776 FROM xla_events_gt xet
47777 , PO_EXTRACT_HEADER_V h4
47778 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
47779 and xet.event_class_code = C_EVENT_CLASS_CODE
47780 and xet.event_status_code <> 'N' AND h4.event_id = xet.event_id
47781
47782 ORDER BY event_id
47783 ;
47784
47785
47786 --
47787 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
47788 IS
47789 SELECT /*+ leading(xet) cardinality(xet,1) */
47790 -- Event Class Code: PO_PA
47791 xet.entity_id
47792 ,xet.legal_entity_id
47793 ,xet.entity_code
47794 ,xet.transaction_number
47795 ,xet.event_id
47796 ,xet.event_class_code
47797 ,xet.event_type_code
47798 ,xet.event_number
47799 ,xet.event_date
47800 ,xet.transaction_date
47801 ,xet.reference_num_1
47802 ,xet.reference_num_2
47803 ,xet.reference_num_3
47804 ,xet.reference_num_4
47805 ,xet.reference_char_1
47806 ,xet.reference_char_2
47807 ,xet.reference_char_3
47808 ,xet.reference_char_4
47809 ,xet.reference_date_1
47810 ,xet.reference_date_2
47811 ,xet.reference_date_3
47812 ,xet.reference_date_4
47813 ,xet.event_created_by
47814 ,xet.budgetary_control_flag
47815 , l3.LINE_NUMBER
47816 , l3.JE_LINE_DESCRIPTION source_3
47817 , l1.FEDERAL_FUND_CATEGORY source_7
47818 , l1.FEDERAL_FUND_EXPIRED_STATUS source_8
47819 , l3.BUDGET_ACCOUNT source_9
47820 , l1.FEDERAL_PRIOR_YEAR_FLAG source_10
47821 , l1.FEDERAL_NET_PYA_ADJ_AMT source_11
47822 , l3.MAIN_OR_BACKING_CODE source_13
47823 , l3.PO_DISTRIBUTION_TYPE source_14
47824 , l3.ACCOUNTING_REVERSAL_FLAG source_15
47825 , l3.DISTRIBUTION_LINK_TYPE source_17
47826 , l3.PO_DISTRIBUTION_ID source_19
47827 , l3.APPLIED_TO_APPL_ID source_21
47828 , l3.APPLIED_TO_DIST_LINK_TYPE source_22
47829 , l3.APPLIED_TO_ENTITY_CODE source_23
47830 , l3.APPLIED_TO_DIST_ID_1 source_24
47831 , l3.APPLIED_TO_HEADER_ID_1 source_25
47832 , l3.ENTERED_AMT source_26
47833 , l3.CURRENCY_CODE source_27
47834 , l3.ACCOUNTED_AMT source_28
47835 , l3.PO_ENCUM_UPG_OPTION source_29
47836 , l1.FEDERAL_UNANTICIPATED_AMT source_30
47837 , l3.JFMIP_REFERENCE source_31
47838 , l3.PO_UPG_ENC_TYPE_ID source_32
47839 , l3.ALLOC_TO_DISTRIBUTION_TYPE source_33
47840 , l3.ALLOC_TO_DIST_ID_1 source_34
47841 , l2.CURRENCY_CONVERSION_DATE source_35
47842 , l2.CURRENCY_CONVERSION_RATE source_36
47843 , l2.CURRENCY_CONVERSION_TYPE source_37
47844 , l1.FEDERAL_PYA_DIFF_AMT source_38
47845 , l1.FEDERAL_ANTICIPATED_AMT source_39
47846 , l1.FEDERAL_PYA_AMT source_40
47847 FROM xla_events_gt xet
47848 , FV_XLA_PO_REF_V l1
47849 , PO_DISTS_REF_V l2
47850 , PO_EXTRACT_DETAIL_V l3
47851 WHERE xet.event_id between x_first_event_id and x_last_event_id
47852 and xet.event_date between p_pad_start_date and p_pad_end_date
47853 and xet.event_class_code = C_EVENT_CLASS_CODE
47854 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
47855 AND l1.Federal_event_id (+) = l3.event_id AND l1.Federal_Line_Number (+) = l3.Line_Number AND l3.po_distribution_id = l2.po_distribution_id (+) AND l3.po_distribution_type = l2.po_distribution_type (+) ;
47856
47857 --
47858 BEGIN
47859 IF g_log_enabled THEN
47860 l_log_module := C_DEFAULT_MODULE||'.EventClass_86';
47861 END IF;
47862 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47863 trace
47864 (p_msg => 'BEGIN of EventClass_86'
47865 ,p_level => C_LEVEL_PROCEDURE
47866 ,p_module => l_log_module);
47867 END IF;
47868
47869 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
47870 trace
47871 (p_msg => 'p_application_id = '||p_application_id||
47872 ' - p_base_ledger_id = '||p_base_ledger_id||
47873 ' - p_target_ledger_id = '||p_target_ledger_id||
47874 ' - p_language = '||p_language||
47875 ' - p_currency_code = '||p_currency_code||
47876 ' - p_sla_ledger_id = '||p_sla_ledger_id
47877 ,p_level => C_LEVEL_STATEMENT
47878 ,p_module => l_log_module);
47879 END IF;
47880 --
47881 -- initialze arrays
47882 --
47883 g_array_event.DELETE;
47884 l_rec_array_event := l_null_rec_array_event;
47885 --
47886 --------------------------------------
47887 -- 4262811 Initialze MPA Line Number
47888 --------------------------------------
47889 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
47890
47891 --
47892
47893 --
47894 OPEN header_cur;
47895 --
47896 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
47897 trace
47898 (p_msg => 'SQL - FETCH header_cur'
47899 ,p_level => C_LEVEL_STATEMENT
47900 ,p_module => l_log_module);
47901 END IF;
47902 --
47903 LOOP
47904 FETCH header_cur BULK COLLECT INTO
47905 l_array_entity_id
47906 , l_array_legal_entity_id
47907 , l_array_entity_code
47908 , l_array_transaction_num
47909 , l_array_event_id
47910 , l_array_class_code
47911 , l_array_event_type
47912 , l_array_event_number
47913 , l_array_event_date
47914 , l_array_transaction_date
47915 , l_array_reference_num_1
47916 , l_array_reference_num_2
47917 , l_array_reference_num_3
47918 , l_array_reference_num_4
47919 , l_array_reference_char_1
47920 , l_array_reference_char_2
47921 , l_array_reference_char_3
47922 , l_array_reference_char_4
47923 , l_array_reference_date_1
47924 , l_array_reference_date_2
47925 , l_array_reference_date_3
47926 , l_array_reference_date_4
47927 , l_array_event_created_by
47928 , l_array_budgetary_control_flag
47929 , l_array_source_1
47930 , l_array_source_2
47931 , l_array_source_20
47932 , l_array_source_48
47933 , l_array_source_49
47934 LIMIT l_rows;
47935 --
47936 IF (C_LEVEL_EVENT >= g_log_level) THEN
47937 trace
47938 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
47939 ,p_level => C_LEVEL_EVENT
47940 ,p_module => l_log_module);
47941 END IF;
47942 --
47943 EXIT WHEN l_array_entity_id.COUNT = 0;
47944
47945 -- initialize arrays
47946 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
47947 XLA_AE_LINES_PKG.g_rec_lines := NULL;
47948
47949 --
47950 -- Bug 4458708
47951 --
47952 XLA_AE_LINES_PKG.g_LineNumber := 0;
47953
47954
47955 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
47956 g_last_hdr_idx := l_array_event_id.LAST;
47957 --
47958 -- loop for the headers. Each iteration is for each header extract row
47959 -- fetched in header cursor
47960 --
47961 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
47962
47963 --
47964 -- set event info as cache for other routines to refer event attributes
47965 --
47966 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
47967 (p_application_id => p_application_id
47968 ,p_primary_ledger_id => p_primary_ledger_id
47969 ,p_base_ledger_id => p_base_ledger_id
47970 ,p_target_ledger_id => p_target_ledger_id
47971 ,p_entity_id => l_array_entity_id(hdr_idx)
47972 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
47973 ,p_entity_code => l_array_entity_code(hdr_idx)
47974 ,p_transaction_num => l_array_transaction_num(hdr_idx)
47975 ,p_event_id => l_array_event_id(hdr_idx)
47976 ,p_event_class_code => l_array_class_code(hdr_idx)
47977 ,p_event_type_code => l_array_event_type(hdr_idx)
47978 ,p_event_number => l_array_event_number(hdr_idx)
47979 ,p_event_date => l_array_event_date(hdr_idx)
47980 ,p_transaction_date => l_array_transaction_date(hdr_idx)
47981 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
47982 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
47986 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
47983 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
47984 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
47985 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
47987 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
47988 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
47989 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
47990 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
47991 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
47992 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
47993 ,p_event_created_by => l_array_event_created_by(hdr_idx)
47994 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
47995
47996 --
47997 -- set the status of entry to C_VALID (0)
47998 --
47999 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
48000
48001 --
48002 -- initialize a row for ae header
48003 --
48004 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
48005
48006 l_event_id := l_array_event_id(hdr_idx);
48007
48008 --
48009 -- storing the hdr_idx for event. May be used by line cursor.
48010 --
48011 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
48012
48013 --
48014 -- store sources from header extract. This can be improved to
48015 -- store only those sources from header extract that may be used in lines
48016 --
48017
48018 g_array_event(l_event_id).array_value_char('source_1') := l_array_source_1(hdr_idx);
48019 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
48020 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
48021 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
48022 g_array_event(l_event_id).array_value_date('source_49') := l_array_source_49(hdr_idx);
48023
48024 --
48025 -- initilaize the status of ae headers for diffrent balance types
48026 -- the status is initialised to C_NOT_CREATED (2)
48027 --
48028 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
48029 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
48030 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
48031
48032 --
48033 -- call api to validate and store accounting attributes for header
48034 --
48035
48036 ------------------------------------------------------------
48037 -- Accrual Reversal : to get date for Standard Source (NONE)
48038 ------------------------------------------------------------
48039 l_acc_rev_gl_date_source := NULL;
48040
48041 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
48042 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_48');
48043 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
48044 l_rec_acct_attrs.array_date_value(2) := g_array_event(l_event_id).array_value_date('source_49');
48045
48046
48047 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
48048
48049 XLA_AE_HEADER_PKG.SetJeCategoryName;
48050
48051 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
48052 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
48053 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
48054 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
48055 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
48056
48057
48058 --
48059 xla_ae_header_pkg.SetHdrDescription(
48060 p_description => Description_1 (
48061 p_application_id => p_application_id
48062 , p_source_1 => g_array_event(l_event_id).array_value_char('source_1')
48063 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
48064 )
48065 );
48066 --
48067
48068 -- No header level analytical criteria
48069
48070 --
48071 --accounting attribute enhancement, bug 3612931
48072 --
48073 l_trx_reversal_source := SUBSTR(NULL, 1,30);
48074
48075 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
48076 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
48077
48078 xla_accounting_err_pkg.build_message
48079 (p_appli_s_name => 'XLA'
48080 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
48081 ,p_token_1 => 'ACCT_ATTR_NAME'
48082 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
48083 ,p_token_2 => 'PRODUCT_NAME'
48084 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
48085 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
48086 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
48087 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
48088
48089 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
48090 --
48091 -- following sets the accounting attributes needed to reverse
48092 -- accounting for a distributeion
48093 --
48094 xla_ae_lines_pkg.SetTrxReversalAttrs
48095 (p_event_id => l_event_id
48096 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
48097 ,p_trx_reversal_source => l_trx_reversal_source);
48098
48099 END IF;
48100
48101
48102 ----------------------------------------------------------------
48103 -- 4262811 - update the header statuses to invalid in need be
48104 ----------------------------------------------------------------
48105 --
48106 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
48107
48108
48109 -----------------------------------------------
48110 -- No accrual reversal for the event class/type
48111 -----------------------------------------------
48112 ----------------------------------------------------------------
48113
48114 --
48115 -- this ends the header loop iteration for one bulk fetch
48116 --
48117 END LOOP;
48118
48119 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
48120 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
48121
48122 --
48123 -- insert dummy rows into lines gt table that were created due to
48124 -- transaction reversals
48125 --
48126 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
48127 l_result := XLA_AE_LINES_PKG.InsertLines;
48128 END IF;
48129
48130 --
48131 -- reset the temp_line_num for each set of events fetched from header
48132 -- cursor rather than doing it for each new event in line cursor
48133 -- Bug 3939231
48134 --
48135 xla_ae_lines_pkg.g_temp_line_num := 0;
48136
48137
48138
48139 --
48140 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
48141 --
48142 --
48143 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
48144
48145 trace
48146 (p_msg => 'SQL - FETCH line_cur'
48147 ,p_level => C_LEVEL_STATEMENT
48148 ,p_module => l_log_module);
48149
48150 END IF;
48151 --
48152 --
48153 LOOP
48154 --
48155 FETCH line_cur BULK COLLECT INTO
48156 l_array_entity_id
48157 , l_array_legal_entity_id
48158 , l_array_entity_code
48159 , l_array_transaction_num
48160 , l_array_event_id
48161 , l_array_class_code
48162 , l_array_event_type
48163 , l_array_event_number
48164 , l_array_event_date
48165 , l_array_transaction_date
48166 , l_array_reference_num_1
48167 , l_array_reference_num_2
48168 , l_array_reference_num_3
48169 , l_array_reference_num_4
48170 , l_array_reference_char_1
48171 , l_array_reference_char_2
48172 , l_array_reference_char_3
48173 , l_array_reference_char_4
48174 , l_array_reference_date_1
48175 , l_array_reference_date_2
48176 , l_array_reference_date_3
48177 , l_array_reference_date_4
48178 , l_array_event_created_by
48179 , l_array_budgetary_control_flag
48180 , l_array_extract_line_num
48181 , l_array_source_3
48182 , l_array_source_7
48183 , l_array_source_8
48184 , l_array_source_9
48185 , l_array_source_10
48189 , l_array_source_15
48186 , l_array_source_11
48187 , l_array_source_13
48188 , l_array_source_14
48190 , l_array_source_17
48191 , l_array_source_19
48192 , l_array_source_21
48193 , l_array_source_22
48194 , l_array_source_23
48195 , l_array_source_24
48196 , l_array_source_25
48197 , l_array_source_26
48198 , l_array_source_27
48199 , l_array_source_28
48200 , l_array_source_29
48201 , l_array_source_30
48202 , l_array_source_31
48203 , l_array_source_32
48204 , l_array_source_33
48205 , l_array_source_34
48206 , l_array_source_35
48207 , l_array_source_36
48208 , l_array_source_37
48209 , l_array_source_38
48210 , l_array_source_39
48211 , l_array_source_40
48212 LIMIT l_rows;
48213
48214 --
48215 IF (C_LEVEL_EVENT >= g_log_level) THEN
48216 trace
48217 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
48218 ,p_level => C_LEVEL_EVENT
48219 ,p_module => l_log_module);
48220 END IF;
48221 --
48222 EXIT WHEN l_array_entity_id.count = 0;
48223
48224 XLA_AE_LINES_PKG.g_rec_lines := null;
48225
48226 --
48227 -- Bug 4458708
48228 --
48229 XLA_AE_LINES_PKG.g_LineNumber := 0;
48230 --
48231 --
48232
48233 FOR Idx IN 1..l_array_event_id.count LOOP
48234 --
48235 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
48236 --
48237 l_event_id := l_array_event_id(idx); -- 5648433
48238
48239 --
48240 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
48241 --
48242
48243 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
48244 (g_array_event(l_event_id).array_value_num('header_index'))
48245 ,'N'
48246 ) <> 'Y'
48247 THEN
48248 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
48249 trace
48250 (p_msg => 'Trancaction revesal option is not Y '
48251 ,p_level => C_LEVEL_STATEMENT
48252 ,p_module => l_log_module);
48253 END IF;
48254
48255 --
48256 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
48257 --
48258 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
48259 --
48260 -- set event info as cache for other routines to refer event attributes
48261 --
48262
48263 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
48264 l_previous_event_id := l_event_id;
48265
48266 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
48267 (p_application_id => p_application_id
48268 ,p_primary_ledger_id => p_primary_ledger_id
48269 ,p_base_ledger_id => p_base_ledger_id
48270 ,p_target_ledger_id => p_target_ledger_id
48271 ,p_entity_id => l_array_entity_id(Idx)
48272 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
48273 ,p_entity_code => l_array_entity_code(Idx)
48274 ,p_transaction_num => l_array_transaction_num(Idx)
48275 ,p_event_id => l_array_event_id(Idx)
48276 ,p_event_class_code => l_array_class_code(Idx)
48277 ,p_event_type_code => l_array_event_type(Idx)
48278 ,p_event_number => l_array_event_number(Idx)
48279 ,p_event_date => l_array_event_date(Idx)
48280 ,p_transaction_date => l_array_transaction_date(Idx)
48281 ,p_reference_num_1 => l_array_reference_num_1(Idx)
48282 ,p_reference_num_2 => l_array_reference_num_2(Idx)
48283 ,p_reference_num_3 => l_array_reference_num_3(Idx)
48284 ,p_reference_num_4 => l_array_reference_num_4(Idx)
48285 ,p_reference_char_1 => l_array_reference_char_1(Idx)
48286 ,p_reference_char_2 => l_array_reference_char_2(Idx)
48287 ,p_reference_char_3 => l_array_reference_char_3(Idx)
48288 ,p_reference_char_4 => l_array_reference_char_4(Idx)
48289 ,p_reference_date_1 => l_array_reference_date_1(Idx)
48290 ,p_reference_date_2 => l_array_reference_date_2(Idx)
48291 ,p_reference_date_3 => l_array_reference_date_3(Idx)
48292 ,p_reference_date_4 => l_array_reference_date_4(Idx)
48293 ,p_event_created_by => l_array_event_created_by(Idx)
48294 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
48295 --
48296 END IF;
48297
48298
48299
48300 --
48301 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
48302
48303 l_acct_reversal_source := SUBSTR(l_array_source_15(Idx), 1,30);
48304
48305 IF l_continue_with_lines THEN
48306 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
48307 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
48308
48309 xla_accounting_err_pkg.build_message
48310 (p_appli_s_name => 'XLA'
48311 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
48312 ,p_token_1 => 'LINE_NUMBER'
48313 ,p_value_1 => l_array_extract_line_num(Idx)
48314 ,p_token_2 => 'PRODUCT_NAME'
48318 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
48315 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
48316 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
48317 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
48319
48320 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
48321 --
48322 -- following sets the accounting attributes needed to reverse
48323 -- accounting for a distributeion
48324 --
48325
48326 --
48327 -- 5217187
48328 --
48329 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
48330 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
48331 g_array_event(l_event_id).array_value_num('header_index'));
48332 --
48333 --
48334
48335 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
48336 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_15(Idx);
48337 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
48338 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_19(Idx);
48339 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
48340 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_17(Idx);
48341 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
48342 l_rec_rev_acct_attrs.array_num_value(5) := TO_NUMBER(l_array_source_9(Idx));
48343 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
48344 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_26(Idx);
48345 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
48346 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_27(Idx);
48347 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
48348 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_28(Idx);
48349 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
48350 l_rec_rev_acct_attrs.array_num_value(9) := TO_NUMBER(l_array_source_9(Idx));
48351 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
48352 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_26(Idx);
48353 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
48354 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_27(Idx);
48355 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
48356 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_28(Idx);
48357 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
48358 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_29(Idx);
48359 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
48360 l_rec_rev_acct_attrs.array_num_value(14) := l_array_source_24(Idx);
48361 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
48362 l_rec_rev_acct_attrs.array_char_value(15) := l_array_source_22(Idx);
48363 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'UPG_CR_ENC_TYPE_ID';
48364 l_rec_rev_acct_attrs.array_num_value(16) := l_array_source_32(Idx);
48365 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'UPG_DR_ENC_TYPE_ID';
48366 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_32(Idx);
48367
48368
48369 xla_ae_lines_pkg.SetAcctReversalAttrs
48370 (p_event_id => l_event_id
48371 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
48372 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48373 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
48374 END IF;
48375
48376 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
48377 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
48378
48379 --
48380 AcctLineType_14 (
48381 p_application_id => p_application_id
48382 ,p_event_id => l_event_id
48383 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48384 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48385 ,p_actual_flag => l_actual_flag
48386 ,p_balance_type_code => l_balance_type_code
48387 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48388
48389 , p_source_9 => l_array_source_9(Idx)
48390 , p_source_10 => l_array_source_10(Idx)
48391 , p_source_13 => l_array_source_13(Idx)
48392 , p_source_14 => l_array_source_14(Idx)
48393 , p_source_15 => l_array_source_15(Idx)
48394 , p_source_17 => l_array_source_17(Idx)
48395 , p_source_19 => l_array_source_19(Idx)
48396 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48397 , p_source_21 => l_array_source_21(Idx)
48398 , p_source_22 => l_array_source_22(Idx)
48399 , p_source_23 => l_array_source_23(Idx)
48400 , p_source_24 => l_array_source_24(Idx)
48401 , p_source_25 => l_array_source_25(Idx)
48402 , p_source_26 => l_array_source_26(Idx)
48403 , p_source_27 => l_array_source_27(Idx)
48404 , p_source_28 => l_array_source_28(Idx)
48405 , p_source_29 => l_array_source_29(Idx)
48406 , p_source_30 => l_array_source_30(Idx)
48407 , p_source_31 => l_array_source_31(Idx)
48408 , p_source_32 => l_array_source_32(Idx)
48409 );
48410 If(l_balance_type_code = 'A') THEN
48411 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48412 END IF;
48413
48414 --
48415
48416
48417 --
48418 AcctLineType_15 (
48419 p_application_id => p_application_id
48420 ,p_event_id => l_event_id
48421 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48422 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48423 ,p_actual_flag => l_actual_flag
48424 ,p_balance_type_code => l_balance_type_code
48425 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48426
48427 , p_source_9 => l_array_source_9(Idx)
48428 , p_source_10 => l_array_source_10(Idx)
48429 , p_source_13 => l_array_source_13(Idx)
48430 , p_source_14 => l_array_source_14(Idx)
48431 , p_source_15 => l_array_source_15(Idx)
48432 , p_source_17 => l_array_source_17(Idx)
48433 , p_source_19 => l_array_source_19(Idx)
48434 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48435 , p_source_21 => l_array_source_21(Idx)
48436 , p_source_22 => l_array_source_22(Idx)
48437 , p_source_23 => l_array_source_23(Idx)
48438 , p_source_24 => l_array_source_24(Idx)
48439 , p_source_25 => l_array_source_25(Idx)
48440 , p_source_26 => l_array_source_26(Idx)
48441 , p_source_27 => l_array_source_27(Idx)
48442 , p_source_28 => l_array_source_28(Idx)
48443 , p_source_29 => l_array_source_29(Idx)
48444 , p_source_31 => l_array_source_31(Idx)
48445 , p_source_32 => l_array_source_32(Idx)
48446 );
48447 If(l_balance_type_code = 'A') THEN
48448 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48449 END IF;
48450
48451 --
48452
48453
48454 --
48455 AcctLineType_16 (
48456 p_application_id => p_application_id
48457 ,p_event_id => l_event_id
48458 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48459 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48460 ,p_actual_flag => l_actual_flag
48461 ,p_balance_type_code => l_balance_type_code
48462 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48463
48464 , p_source_9 => l_array_source_9(Idx)
48465 , p_source_13 => l_array_source_13(Idx)
48466 , p_source_15 => l_array_source_15(Idx)
48467 , p_source_17 => l_array_source_17(Idx)
48468 , p_source_19 => l_array_source_19(Idx)
48469 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48470 , p_source_21 => l_array_source_21(Idx)
48471 , p_source_22 => l_array_source_22(Idx)
48472 , p_source_23 => l_array_source_23(Idx)
48473 , p_source_24 => l_array_source_24(Idx)
48474 , p_source_25 => l_array_source_25(Idx)
48475 , p_source_26 => l_array_source_26(Idx)
48476 , p_source_27 => l_array_source_27(Idx)
48477 , p_source_28 => l_array_source_28(Idx)
48478 , p_source_29 => l_array_source_29(Idx)
48479 , p_source_31 => l_array_source_31(Idx)
48480 , p_source_32 => l_array_source_32(Idx)
48481 , p_source_33 => l_array_source_33(Idx)
48482 , p_source_34 => l_array_source_34(Idx)
48483 );
48484 If(l_balance_type_code = 'A') THEN
48485 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48486 END IF;
48487
48488 --
48489
48490
48491 --
48492 AcctLineType_17 (
48493 p_application_id => p_application_id
48494 ,p_event_id => l_event_id
48495 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48496 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48497 ,p_actual_flag => l_actual_flag
48498 ,p_balance_type_code => l_balance_type_code
48499 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48500
48501 , p_source_9 => l_array_source_9(Idx)
48502 , p_source_13 => l_array_source_13(Idx)
48503 , p_source_15 => l_array_source_15(Idx)
48504 , p_source_17 => l_array_source_17(Idx)
48505 , p_source_19 => l_array_source_19(Idx)
48506 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48507 , p_source_21 => l_array_source_21(Idx)
48508 , p_source_22 => l_array_source_22(Idx)
48509 , p_source_23 => l_array_source_23(Idx)
48510 , p_source_24 => l_array_source_24(Idx)
48511 , p_source_25 => l_array_source_25(Idx)
48512 , p_source_26 => l_array_source_26(Idx)
48513 , p_source_27 => l_array_source_27(Idx)
48514 , p_source_28 => l_array_source_28(Idx)
48515 , p_source_29 => l_array_source_29(Idx)
48516 , p_source_31 => l_array_source_31(Idx)
48517 , p_source_32 => l_array_source_32(Idx)
48518 , p_source_33 => l_array_source_33(Idx)
48519 , p_source_34 => l_array_source_34(Idx)
48520 );
48521 If(l_balance_type_code = 'A') THEN
48522 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48523 END IF;
48524
48525 --
48526
48527
48528 --
48529 AcctLineType_18 (
48530 p_application_id => p_application_id
48531 ,p_event_id => l_event_id
48532 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48533 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48534 ,p_actual_flag => l_actual_flag
48535 ,p_balance_type_code => l_balance_type_code
48536 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48537
48538 , p_source_3 => l_array_source_3(Idx)
48539 , p_source_7 => l_array_source_7(Idx)
48540 , p_source_9 => l_array_source_9(Idx)
48541 , p_source_10 => l_array_source_10(Idx)
48542 , p_source_13 => l_array_source_13(Idx)
48543 , p_source_14 => l_array_source_14(Idx)
48544 , p_source_15 => l_array_source_15(Idx)
48545 , p_source_17 => l_array_source_17(Idx)
48546 , p_source_19 => l_array_source_19(Idx)
48547 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48548 , p_source_21 => l_array_source_21(Idx)
48549 , p_source_22 => l_array_source_22(Idx)
48550 , p_source_23 => l_array_source_23(Idx)
48551 , p_source_24 => l_array_source_24(Idx)
48552 , p_source_25 => l_array_source_25(Idx)
48553 , p_source_26 => l_array_source_26(Idx)
48554 , p_source_27 => l_array_source_27(Idx)
48555 , p_source_28 => l_array_source_28(Idx)
48556 , p_source_29 => l_array_source_29(Idx)
48557 , p_source_31 => l_array_source_31(Idx)
48558 , p_source_32 => l_array_source_32(Idx)
48559 , p_source_35 => l_array_source_35(Idx)
48560 , p_source_36 => l_array_source_36(Idx)
48561 , p_source_37 => l_array_source_37(Idx)
48562 );
48563 If(l_balance_type_code = 'A') THEN
48564 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48565 END IF;
48566
48567 --
48568
48569
48570 --
48571 AcctLineType_19 (
48572 p_application_id => p_application_id
48573 ,p_event_id => l_event_id
48574 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48575 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48576 ,p_actual_flag => l_actual_flag
48577 ,p_balance_type_code => l_balance_type_code
48578 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48579
48580 , p_source_3 => l_array_source_3(Idx)
48581 , p_source_7 => l_array_source_7(Idx)
48582 , p_source_8 => l_array_source_8(Idx)
48583 , p_source_9 => l_array_source_9(Idx)
48584 , p_source_10 => l_array_source_10(Idx)
48585 , p_source_13 => l_array_source_13(Idx)
48586 , p_source_14 => l_array_source_14(Idx)
48587 , p_source_15 => l_array_source_15(Idx)
48588 , p_source_17 => l_array_source_17(Idx)
48589 , p_source_19 => l_array_source_19(Idx)
48590 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48591 , p_source_21 => l_array_source_21(Idx)
48592 , p_source_22 => l_array_source_22(Idx)
48593 , p_source_23 => l_array_source_23(Idx)
48594 , p_source_24 => l_array_source_24(Idx)
48595 , p_source_25 => l_array_source_25(Idx)
48596 , p_source_26 => l_array_source_26(Idx)
48597 , p_source_27 => l_array_source_27(Idx)
48598 , p_source_28 => l_array_source_28(Idx)
48599 , p_source_29 => l_array_source_29(Idx)
48600 , p_source_31 => l_array_source_31(Idx)
48601 , p_source_32 => l_array_source_32(Idx)
48602 , p_source_35 => l_array_source_35(Idx)
48603 , p_source_36 => l_array_source_36(Idx)
48604 , p_source_37 => l_array_source_37(Idx)
48605 );
48606 If(l_balance_type_code = 'A') THEN
48607 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48608 END IF;
48609
48610 --
48611
48612
48613 --
48614 AcctLineType_20 (
48615 p_application_id => p_application_id
48616 ,p_event_id => l_event_id
48617 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48618 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48619 ,p_actual_flag => l_actual_flag
48620 ,p_balance_type_code => l_balance_type_code
48621 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48622
48623 , p_source_3 => l_array_source_3(Idx)
48624 , p_source_7 => l_array_source_7(Idx)
48625 , p_source_8 => l_array_source_8(Idx)
48626 , p_source_9 => l_array_source_9(Idx)
48627 , p_source_10 => l_array_source_10(Idx)
48628 , p_source_13 => l_array_source_13(Idx)
48629 , p_source_14 => l_array_source_14(Idx)
48630 , p_source_15 => l_array_source_15(Idx)
48631 , p_source_17 => l_array_source_17(Idx)
48632 , p_source_19 => l_array_source_19(Idx)
48633 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48634 , p_source_21 => l_array_source_21(Idx)
48635 , p_source_22 => l_array_source_22(Idx)
48636 , p_source_23 => l_array_source_23(Idx)
48637 , p_source_24 => l_array_source_24(Idx)
48638 , p_source_25 => l_array_source_25(Idx)
48639 , p_source_26 => l_array_source_26(Idx)
48640 , p_source_27 => l_array_source_27(Idx)
48641 , p_source_28 => l_array_source_28(Idx)
48642 , p_source_29 => l_array_source_29(Idx)
48643 , p_source_31 => l_array_source_31(Idx)
48644 , p_source_32 => l_array_source_32(Idx)
48645 , p_source_35 => l_array_source_35(Idx)
48646 , p_source_36 => l_array_source_36(Idx)
48647 , p_source_37 => l_array_source_37(Idx)
48648 );
48649 If(l_balance_type_code = 'A') THEN
48650 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48651 END IF;
48652
48653 --
48654
48655
48656 --
48657 AcctLineType_21 (
48658 p_application_id => p_application_id
48659 ,p_event_id => l_event_id
48660 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48661 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48662 ,p_actual_flag => l_actual_flag
48663 ,p_balance_type_code => l_balance_type_code
48664 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48665
48666 , p_source_3 => l_array_source_3(Idx)
48667 , p_source_7 => l_array_source_7(Idx)
48668 , p_source_9 => l_array_source_9(Idx)
48669 , p_source_10 => l_array_source_10(Idx)
48670 , p_source_13 => l_array_source_13(Idx)
48671 , p_source_14 => l_array_source_14(Idx)
48672 , p_source_15 => l_array_source_15(Idx)
48673 , p_source_17 => l_array_source_17(Idx)
48674 , p_source_19 => l_array_source_19(Idx)
48675 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48676 , p_source_21 => l_array_source_21(Idx)
48677 , p_source_22 => l_array_source_22(Idx)
48678 , p_source_23 => l_array_source_23(Idx)
48679 , p_source_24 => l_array_source_24(Idx)
48680 , p_source_25 => l_array_source_25(Idx)
48681 , p_source_26 => l_array_source_26(Idx)
48682 , p_source_27 => l_array_source_27(Idx)
48683 , p_source_28 => l_array_source_28(Idx)
48684 , p_source_29 => l_array_source_29(Idx)
48685 , p_source_31 => l_array_source_31(Idx)
48686 , p_source_32 => l_array_source_32(Idx)
48687 , p_source_35 => l_array_source_35(Idx)
48688 , p_source_36 => l_array_source_36(Idx)
48689 , p_source_37 => l_array_source_37(Idx)
48690 );
48691 If(l_balance_type_code = 'A') THEN
48692 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48693 END IF;
48694
48695 --
48696
48697
48698 --
48699 AcctLineType_22 (
48700 p_application_id => p_application_id
48701 ,p_event_id => l_event_id
48702 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48703 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48704 ,p_actual_flag => l_actual_flag
48705 ,p_balance_type_code => l_balance_type_code
48706 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48707
48708 , p_source_3 => l_array_source_3(Idx)
48709 , p_source_9 => l_array_source_9(Idx)
48710 , p_source_10 => l_array_source_10(Idx)
48711 , p_source_13 => l_array_source_13(Idx)
48712 , p_source_14 => l_array_source_14(Idx)
48713 , p_source_15 => l_array_source_15(Idx)
48714 , p_source_17 => l_array_source_17(Idx)
48715 , p_source_19 => l_array_source_19(Idx)
48716 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48717 , p_source_21 => l_array_source_21(Idx)
48718 , p_source_22 => l_array_source_22(Idx)
48719 , p_source_23 => l_array_source_23(Idx)
48720 , p_source_24 => l_array_source_24(Idx)
48724 , p_source_28 => l_array_source_28(Idx)
48721 , p_source_25 => l_array_source_25(Idx)
48722 , p_source_26 => l_array_source_26(Idx)
48723 , p_source_27 => l_array_source_27(Idx)
48725 , p_source_29 => l_array_source_29(Idx)
48726 , p_source_31 => l_array_source_31(Idx)
48727 , p_source_32 => l_array_source_32(Idx)
48728 , p_source_35 => l_array_source_35(Idx)
48729 , p_source_36 => l_array_source_36(Idx)
48730 , p_source_37 => l_array_source_37(Idx)
48731 );
48732 If(l_balance_type_code = 'A') THEN
48733 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48734 END IF;
48735
48736 --
48737
48738
48739 --
48740 AcctLineType_23 (
48741 p_application_id => p_application_id
48742 ,p_event_id => l_event_id
48743 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48744 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48745 ,p_actual_flag => l_actual_flag
48746 ,p_balance_type_code => l_balance_type_code
48747 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48748
48749 , p_source_3 => l_array_source_3(Idx)
48750 , p_source_7 => l_array_source_7(Idx)
48751 , p_source_8 => l_array_source_8(Idx)
48752 , p_source_9 => l_array_source_9(Idx)
48753 , p_source_10 => l_array_source_10(Idx)
48754 , p_source_13 => l_array_source_13(Idx)
48755 , p_source_14 => l_array_source_14(Idx)
48756 , p_source_15 => l_array_source_15(Idx)
48757 , p_source_17 => l_array_source_17(Idx)
48758 , p_source_19 => l_array_source_19(Idx)
48759 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48760 , p_source_21 => l_array_source_21(Idx)
48761 , p_source_22 => l_array_source_22(Idx)
48762 , p_source_23 => l_array_source_23(Idx)
48763 , p_source_24 => l_array_source_24(Idx)
48764 , p_source_25 => l_array_source_25(Idx)
48765 , p_source_26 => l_array_source_26(Idx)
48766 , p_source_27 => l_array_source_27(Idx)
48767 , p_source_28 => l_array_source_28(Idx)
48768 , p_source_29 => l_array_source_29(Idx)
48769 , p_source_31 => l_array_source_31(Idx)
48770 , p_source_32 => l_array_source_32(Idx)
48771 , p_source_35 => l_array_source_35(Idx)
48772 , p_source_36 => l_array_source_36(Idx)
48773 , p_source_37 => l_array_source_37(Idx)
48774 );
48775 If(l_balance_type_code = 'A') THEN
48776 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48777 END IF;
48778
48779 --
48780
48781
48782 --
48783 AcctLineType_24 (
48784 p_application_id => p_application_id
48785 ,p_event_id => l_event_id
48786 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48787 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48788 ,p_actual_flag => l_actual_flag
48789 ,p_balance_type_code => l_balance_type_code
48790 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48791
48792 , p_source_3 => l_array_source_3(Idx)
48793 , p_source_9 => l_array_source_9(Idx)
48794 , p_source_10 => l_array_source_10(Idx)
48795 , p_source_11 => l_array_source_11(Idx)
48796 , p_source_13 => l_array_source_13(Idx)
48797 , p_source_14 => l_array_source_14(Idx)
48798 , p_source_15 => l_array_source_15(Idx)
48799 , p_source_17 => l_array_source_17(Idx)
48800 , p_source_19 => l_array_source_19(Idx)
48801 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48802 , p_source_21 => l_array_source_21(Idx)
48803 , p_source_22 => l_array_source_22(Idx)
48804 , p_source_23 => l_array_source_23(Idx)
48805 , p_source_24 => l_array_source_24(Idx)
48806 , p_source_25 => l_array_source_25(Idx)
48807 , p_source_26 => l_array_source_26(Idx)
48808 , p_source_27 => l_array_source_27(Idx)
48809 , p_source_28 => l_array_source_28(Idx)
48810 , p_source_29 => l_array_source_29(Idx)
48811 , p_source_31 => l_array_source_31(Idx)
48812 , p_source_32 => l_array_source_32(Idx)
48813 , p_source_35 => l_array_source_35(Idx)
48814 , p_source_36 => l_array_source_36(Idx)
48815 , p_source_37 => l_array_source_37(Idx)
48816 , p_source_38 => l_array_source_38(Idx)
48817 );
48818 If(l_balance_type_code = 'A') THEN
48819 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48820 END IF;
48821
48822 --
48823
48824
48825 --
48826 AcctLineType_25 (
48827 p_application_id => p_application_id
48828 ,p_event_id => l_event_id
48829 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48830 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48831 ,p_actual_flag => l_actual_flag
48832 ,p_balance_type_code => l_balance_type_code
48833 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48834
48835 , p_source_3 => l_array_source_3(Idx)
48836 , p_source_7 => l_array_source_7(Idx)
48837 , p_source_8 => l_array_source_8(Idx)
48838 , p_source_9 => l_array_source_9(Idx)
48839 , p_source_10 => l_array_source_10(Idx)
48840 , p_source_11 => l_array_source_11(Idx)
48841 , p_source_13 => l_array_source_13(Idx)
48842 , p_source_14 => l_array_source_14(Idx)
48843 , p_source_15 => l_array_source_15(Idx)
48844 , p_source_17 => l_array_source_17(Idx)
48845 , p_source_19 => l_array_source_19(Idx)
48846 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48847 , p_source_21 => l_array_source_21(Idx)
48848 , p_source_22 => l_array_source_22(Idx)
48849 , p_source_23 => l_array_source_23(Idx)
48850 , p_source_24 => l_array_source_24(Idx)
48851 , p_source_25 => l_array_source_25(Idx)
48852 , p_source_26 => l_array_source_26(Idx)
48853 , p_source_27 => l_array_source_27(Idx)
48854 , p_source_28 => l_array_source_28(Idx)
48855 , p_source_29 => l_array_source_29(Idx)
48856 , p_source_31 => l_array_source_31(Idx)
48857 , p_source_32 => l_array_source_32(Idx)
48858 , p_source_35 => l_array_source_35(Idx)
48859 , p_source_36 => l_array_source_36(Idx)
48860 , p_source_37 => l_array_source_37(Idx)
48864 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48861 , p_source_38 => l_array_source_38(Idx)
48862 );
48863 If(l_balance_type_code = 'A') THEN
48865 END IF;
48866
48867 --
48868
48869
48870 --
48871 AcctLineType_26 (
48872 p_application_id => p_application_id
48873 ,p_event_id => l_event_id
48874 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48875 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48876 ,p_actual_flag => l_actual_flag
48877 ,p_balance_type_code => l_balance_type_code
48878 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48879
48880 , p_source_3 => l_array_source_3(Idx)
48881 , p_source_9 => l_array_source_9(Idx)
48882 , p_source_10 => l_array_source_10(Idx)
48883 , p_source_11 => l_array_source_11(Idx)
48884 , p_source_13 => l_array_source_13(Idx)
48885 , p_source_14 => l_array_source_14(Idx)
48886 , p_source_15 => l_array_source_15(Idx)
48887 , p_source_17 => l_array_source_17(Idx)
48888 , p_source_19 => l_array_source_19(Idx)
48889 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48890 , p_source_21 => l_array_source_21(Idx)
48891 , p_source_22 => l_array_source_22(Idx)
48892 , p_source_23 => l_array_source_23(Idx)
48893 , p_source_24 => l_array_source_24(Idx)
48894 , p_source_25 => l_array_source_25(Idx)
48895 , p_source_26 => l_array_source_26(Idx)
48896 , p_source_27 => l_array_source_27(Idx)
48897 , p_source_28 => l_array_source_28(Idx)
48898 , p_source_29 => l_array_source_29(Idx)
48899 , p_source_31 => l_array_source_31(Idx)
48900 , p_source_32 => l_array_source_32(Idx)
48901 , p_source_35 => l_array_source_35(Idx)
48902 , p_source_36 => l_array_source_36(Idx)
48903 , p_source_37 => l_array_source_37(Idx)
48904 , p_source_39 => l_array_source_39(Idx)
48905 );
48906 If(l_balance_type_code = 'A') THEN
48907 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48908 END IF;
48909
48910 --
48911
48912
48913 --
48914 AcctLineType_27 (
48915 p_application_id => p_application_id
48916 ,p_event_id => l_event_id
48917 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48918 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48919 ,p_actual_flag => l_actual_flag
48920 ,p_balance_type_code => l_balance_type_code
48921 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48922
48923 , p_source_3 => l_array_source_3(Idx)
48924 , p_source_8 => l_array_source_8(Idx)
48925 , p_source_9 => l_array_source_9(Idx)
48926 , p_source_10 => l_array_source_10(Idx)
48927 , p_source_11 => l_array_source_11(Idx)
48928 , p_source_13 => l_array_source_13(Idx)
48929 , p_source_14 => l_array_source_14(Idx)
48930 , p_source_15 => l_array_source_15(Idx)
48931 , p_source_17 => l_array_source_17(Idx)
48932 , p_source_19 => l_array_source_19(Idx)
48933 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48934 , p_source_21 => l_array_source_21(Idx)
48935 , p_source_22 => l_array_source_22(Idx)
48936 , p_source_23 => l_array_source_23(Idx)
48937 , p_source_24 => l_array_source_24(Idx)
48938 , p_source_25 => l_array_source_25(Idx)
48939 , p_source_26 => l_array_source_26(Idx)
48940 , p_source_27 => l_array_source_27(Idx)
48941 , p_source_28 => l_array_source_28(Idx)
48942 , p_source_29 => l_array_source_29(Idx)
48943 , p_source_30 => l_array_source_30(Idx)
48944 , p_source_31 => l_array_source_31(Idx)
48945 , p_source_32 => l_array_source_32(Idx)
48946 , p_source_35 => l_array_source_35(Idx)
48947 , p_source_36 => l_array_source_36(Idx)
48948 , p_source_37 => l_array_source_37(Idx)
48949 );
48950 If(l_balance_type_code = 'A') THEN
48951 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48952 END IF;
48953
48954 --
48955
48956
48957 --
48958 AcctLineType_28 (
48959 p_application_id => p_application_id
48960 ,p_event_id => l_event_id
48961 ,p_calculate_acctd_flag => l_calculate_acctd_flag
48962 ,p_calculate_g_l_flag => l_calculate_g_l_flag
48963 ,p_actual_flag => l_actual_flag
48964 ,p_balance_type_code => l_balance_type_code
48965 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
48966
48967 , p_source_3 => l_array_source_3(Idx)
48968 , p_source_8 => l_array_source_8(Idx)
48969 , p_source_9 => l_array_source_9(Idx)
48970 , p_source_10 => l_array_source_10(Idx)
48971 , p_source_13 => l_array_source_13(Idx)
48972 , p_source_14 => l_array_source_14(Idx)
48973 , p_source_15 => l_array_source_15(Idx)
48974 , p_source_17 => l_array_source_17(Idx)
48975 , p_source_19 => l_array_source_19(Idx)
48976 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
48977 , p_source_21 => l_array_source_21(Idx)
48978 , p_source_22 => l_array_source_22(Idx)
48979 , p_source_23 => l_array_source_23(Idx)
48980 , p_source_24 => l_array_source_24(Idx)
48981 , p_source_25 => l_array_source_25(Idx)
48982 , p_source_26 => l_array_source_26(Idx)
48983 , p_source_27 => l_array_source_27(Idx)
48984 , p_source_28 => l_array_source_28(Idx)
48985 , p_source_29 => l_array_source_29(Idx)
48986 , p_source_31 => l_array_source_31(Idx)
48987 , p_source_32 => l_array_source_32(Idx)
48988 , p_source_35 => l_array_source_35(Idx)
48989 , p_source_36 => l_array_source_36(Idx)
48990 , p_source_37 => l_array_source_37(Idx)
48991 );
48992 If(l_balance_type_code = 'A') THEN
48993 l_actual_gain_loss_ref := l_gain_or_loss_ref;
48994 END IF;
48995
48996 --
48997
48998
48999 --
49000 AcctLineType_29 (
49001 p_application_id => p_application_id
49002 ,p_event_id => l_event_id
49003 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49004 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49005 ,p_actual_flag => l_actual_flag
49006 ,p_balance_type_code => l_balance_type_code
49007 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49008
49009 , p_source_3 => l_array_source_3(Idx)
49010 , p_source_9 => l_array_source_9(Idx)
49011 , p_source_10 => l_array_source_10(Idx)
49012 , p_source_13 => l_array_source_13(Idx)
49013 , p_source_14 => l_array_source_14(Idx)
49014 , p_source_15 => l_array_source_15(Idx)
49015 , p_source_17 => l_array_source_17(Idx)
49016 , p_source_19 => l_array_source_19(Idx)
49017 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49018 , p_source_21 => l_array_source_21(Idx)
49019 , p_source_22 => l_array_source_22(Idx)
49020 , p_source_23 => l_array_source_23(Idx)
49021 , p_source_24 => l_array_source_24(Idx)
49022 , p_source_25 => l_array_source_25(Idx)
49023 , p_source_26 => l_array_source_26(Idx)
49024 , p_source_27 => l_array_source_27(Idx)
49025 , p_source_28 => l_array_source_28(Idx)
49026 , p_source_29 => l_array_source_29(Idx)
49027 , p_source_31 => l_array_source_31(Idx)
49028 , p_source_32 => l_array_source_32(Idx)
49029 , p_source_35 => l_array_source_35(Idx)
49030 , p_source_36 => l_array_source_36(Idx)
49031 , p_source_37 => l_array_source_37(Idx)
49032 );
49033 If(l_balance_type_code = 'A') THEN
49034 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49035 END IF;
49036
49037 --
49038
49039
49040 --
49041 AcctLineType_30 (
49042 p_application_id => p_application_id
49043 ,p_event_id => l_event_id
49044 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49045 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49046 ,p_actual_flag => l_actual_flag
49047 ,p_balance_type_code => l_balance_type_code
49048 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49049
49050 , p_source_3 => l_array_source_3(Idx)
49051 , p_source_9 => l_array_source_9(Idx)
49052 , p_source_10 => l_array_source_10(Idx)
49053 , p_source_13 => l_array_source_13(Idx)
49054 , p_source_14 => l_array_source_14(Idx)
49055 , p_source_15 => l_array_source_15(Idx)
49056 , p_source_17 => l_array_source_17(Idx)
49057 , p_source_19 => l_array_source_19(Idx)
49058 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49059 , p_source_21 => l_array_source_21(Idx)
49060 , p_source_22 => l_array_source_22(Idx)
49061 , p_source_23 => l_array_source_23(Idx)
49062 , p_source_24 => l_array_source_24(Idx)
49063 , p_source_25 => l_array_source_25(Idx)
49064 , p_source_26 => l_array_source_26(Idx)
49065 , p_source_27 => l_array_source_27(Idx)
49066 , p_source_28 => l_array_source_28(Idx)
49067 , p_source_29 => l_array_source_29(Idx)
49068 , p_source_31 => l_array_source_31(Idx)
49069 , p_source_32 => l_array_source_32(Idx)
49070 , p_source_35 => l_array_source_35(Idx)
49071 , p_source_36 => l_array_source_36(Idx)
49072 , p_source_37 => l_array_source_37(Idx)
49073 , p_source_40 => l_array_source_40(Idx)
49074 );
49075 If(l_balance_type_code = 'A') THEN
49076 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49077 END IF;
49078
49079 --
49080
49081
49082 --
49083 AcctLineType_31 (
49084 p_application_id => p_application_id
49085 ,p_event_id => l_event_id
49086 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49087 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49088 ,p_actual_flag => l_actual_flag
49089 ,p_balance_type_code => l_balance_type_code
49090 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49091
49092 , p_source_3 => l_array_source_3(Idx)
49093 , p_source_7 => l_array_source_7(Idx)
49094 , p_source_8 => l_array_source_8(Idx)
49095 , p_source_9 => l_array_source_9(Idx)
49096 , p_source_10 => l_array_source_10(Idx)
49097 , p_source_13 => l_array_source_13(Idx)
49098 , p_source_14 => l_array_source_14(Idx)
49099 , p_source_15 => l_array_source_15(Idx)
49100 , p_source_17 => l_array_source_17(Idx)
49101 , p_source_19 => l_array_source_19(Idx)
49102 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49103 , p_source_21 => l_array_source_21(Idx)
49104 , p_source_22 => l_array_source_22(Idx)
49105 , p_source_23 => l_array_source_23(Idx)
49106 , p_source_24 => l_array_source_24(Idx)
49107 , p_source_25 => l_array_source_25(Idx)
49108 , p_source_26 => l_array_source_26(Idx)
49109 , p_source_27 => l_array_source_27(Idx)
49110 , p_source_28 => l_array_source_28(Idx)
49111 , p_source_29 => l_array_source_29(Idx)
49112 , p_source_31 => l_array_source_31(Idx)
49113 , p_source_32 => l_array_source_32(Idx)
49114 , p_source_35 => l_array_source_35(Idx)
49115 , p_source_36 => l_array_source_36(Idx)
49116 , p_source_37 => l_array_source_37(Idx)
49117 , p_source_40 => l_array_source_40(Idx)
49118 );
49119 If(l_balance_type_code = 'A') THEN
49120 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49121 END IF;
49122
49123 --
49124
49125
49126 --
49127 AcctLineType_32 (
49128 p_application_id => p_application_id
49129 ,p_event_id => l_event_id
49130 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49131 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49132 ,p_actual_flag => l_actual_flag
49133 ,p_balance_type_code => l_balance_type_code
49134 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49135
49136 , p_source_3 => l_array_source_3(Idx)
49137 , p_source_8 => l_array_source_8(Idx)
49138 , p_source_9 => l_array_source_9(Idx)
49139 , p_source_10 => l_array_source_10(Idx)
49140 , p_source_13 => l_array_source_13(Idx)
49141 , p_source_14 => l_array_source_14(Idx)
49142 , p_source_15 => l_array_source_15(Idx)
49143 , p_source_17 => l_array_source_17(Idx)
49144 , p_source_19 => l_array_source_19(Idx)
49145 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49146 , p_source_21 => l_array_source_21(Idx)
49147 , p_source_22 => l_array_source_22(Idx)
49148 , p_source_23 => l_array_source_23(Idx)
49149 , p_source_24 => l_array_source_24(Idx)
49150 , p_source_25 => l_array_source_25(Idx)
49151 , p_source_26 => l_array_source_26(Idx)
49152 , p_source_27 => l_array_source_27(Idx)
49153 , p_source_28 => l_array_source_28(Idx)
49154 , p_source_29 => l_array_source_29(Idx)
49155 , p_source_31 => l_array_source_31(Idx)
49156 , p_source_32 => l_array_source_32(Idx)
49157 , p_source_35 => l_array_source_35(Idx)
49158 , p_source_36 => l_array_source_36(Idx)
49159 , p_source_37 => l_array_source_37(Idx)
49160 );
49161 If(l_balance_type_code = 'A') THEN
49162 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49163 END IF;
49164
49165 --
49166
49167
49168 --
49169 AcctLineType_33 (
49170 p_application_id => p_application_id
49171 ,p_event_id => l_event_id
49172 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49173 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49174 ,p_actual_flag => l_actual_flag
49175 ,p_balance_type_code => l_balance_type_code
49176 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49177
49178 , p_source_9 => l_array_source_9(Idx)
49179 , p_source_13 => l_array_source_13(Idx)
49180 , p_source_15 => l_array_source_15(Idx)
49181 , p_source_17 => l_array_source_17(Idx)
49182 , p_source_19 => l_array_source_19(Idx)
49183 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49184 , p_source_21 => l_array_source_21(Idx)
49185 , p_source_22 => l_array_source_22(Idx)
49186 , p_source_23 => l_array_source_23(Idx)
49187 , p_source_24 => l_array_source_24(Idx)
49188 , p_source_25 => l_array_source_25(Idx)
49189 , p_source_26 => l_array_source_26(Idx)
49190 , p_source_27 => l_array_source_27(Idx)
49191 , p_source_28 => l_array_source_28(Idx)
49192 , p_source_29 => l_array_source_29(Idx)
49193 , p_source_31 => l_array_source_31(Idx)
49194 , p_source_32 => l_array_source_32(Idx)
49195 , p_source_33 => l_array_source_33(Idx)
49196 , p_source_34 => l_array_source_34(Idx)
49197 );
49198 If(l_balance_type_code = 'A') THEN
49199 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49200 END IF;
49201
49202 --
49203
49204
49205 --
49206 AcctLineType_34 (
49207 p_application_id => p_application_id
49208 ,p_event_id => l_event_id
49209 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49210 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49211 ,p_actual_flag => l_actual_flag
49212 ,p_balance_type_code => l_balance_type_code
49213 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49214
49215 , p_source_9 => l_array_source_9(Idx)
49216 , p_source_13 => l_array_source_13(Idx)
49217 , p_source_15 => l_array_source_15(Idx)
49218 , p_source_17 => l_array_source_17(Idx)
49219 , p_source_19 => l_array_source_19(Idx)
49220 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49221 , p_source_21 => l_array_source_21(Idx)
49222 , p_source_22 => l_array_source_22(Idx)
49223 , p_source_23 => l_array_source_23(Idx)
49224 , p_source_24 => l_array_source_24(Idx)
49225 , p_source_25 => l_array_source_25(Idx)
49226 , p_source_26 => l_array_source_26(Idx)
49227 , p_source_27 => l_array_source_27(Idx)
49228 , p_source_28 => l_array_source_28(Idx)
49229 , p_source_29 => l_array_source_29(Idx)
49230 , p_source_31 => l_array_source_31(Idx)
49231 , p_source_32 => l_array_source_32(Idx)
49232 , p_source_33 => l_array_source_33(Idx)
49233 , p_source_34 => l_array_source_34(Idx)
49234 );
49235 If(l_balance_type_code = 'A') THEN
49236 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49237 END IF;
49238
49239 --
49240
49241
49242 --
49243 AcctLineType_35 (
49244 p_application_id => p_application_id
49245 ,p_event_id => l_event_id
49246 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49247 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49248 ,p_actual_flag => l_actual_flag
49249 ,p_balance_type_code => l_balance_type_code
49250 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49251
49252 , p_source_9 => l_array_source_9(Idx)
49253 , p_source_13 => l_array_source_13(Idx)
49254 , p_source_15 => l_array_source_15(Idx)
49255 , p_source_17 => l_array_source_17(Idx)
49256 , p_source_19 => l_array_source_19(Idx)
49257 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49258 , p_source_21 => l_array_source_21(Idx)
49259 , p_source_22 => l_array_source_22(Idx)
49260 , p_source_23 => l_array_source_23(Idx)
49261 , p_source_24 => l_array_source_24(Idx)
49262 , p_source_25 => l_array_source_25(Idx)
49263 , p_source_26 => l_array_source_26(Idx)
49264 , p_source_27 => l_array_source_27(Idx)
49265 , p_source_28 => l_array_source_28(Idx)
49266 , p_source_29 => l_array_source_29(Idx)
49267 , p_source_31 => l_array_source_31(Idx)
49268 , p_source_32 => l_array_source_32(Idx)
49269 , p_source_33 => l_array_source_33(Idx)
49270 , p_source_34 => l_array_source_34(Idx)
49271 );
49272 If(l_balance_type_code = 'A') THEN
49273 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49274 END IF;
49275
49276 --
49277
49278
49279 --
49280 AcctLineType_36 (
49281 p_application_id => p_application_id
49282 ,p_event_id => l_event_id
49283 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49284 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49285 ,p_actual_flag => l_actual_flag
49286 ,p_balance_type_code => l_balance_type_code
49287 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49288
49289 , p_source_9 => l_array_source_9(Idx)
49290 , p_source_13 => l_array_source_13(Idx)
49291 , p_source_15 => l_array_source_15(Idx)
49292 , p_source_17 => l_array_source_17(Idx)
49293 , p_source_19 => l_array_source_19(Idx)
49294 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49295 , p_source_21 => l_array_source_21(Idx)
49296 , p_source_22 => l_array_source_22(Idx)
49297 , p_source_23 => l_array_source_23(Idx)
49298 , p_source_24 => l_array_source_24(Idx)
49299 , p_source_25 => l_array_source_25(Idx)
49300 , p_source_26 => l_array_source_26(Idx)
49301 , p_source_27 => l_array_source_27(Idx)
49302 , p_source_28 => l_array_source_28(Idx)
49303 , p_source_29 => l_array_source_29(Idx)
49304 , p_source_31 => l_array_source_31(Idx)
49305 , p_source_32 => l_array_source_32(Idx)
49306 , p_source_33 => l_array_source_33(Idx)
49307 , p_source_34 => l_array_source_34(Idx)
49308 );
49309 If(l_balance_type_code = 'A') THEN
49310 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49311 END IF;
49312
49313 --
49314
49315
49316 --
49317 AcctLineType_37 (
49318 p_application_id => p_application_id
49319 ,p_event_id => l_event_id
49320 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49321 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49322 ,p_actual_flag => l_actual_flag
49323 ,p_balance_type_code => l_balance_type_code
49324 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49325
49326 , p_source_3 => l_array_source_3(Idx)
49327 , p_source_9 => l_array_source_9(Idx)
49328 , p_source_10 => l_array_source_10(Idx)
49329 , p_source_13 => l_array_source_13(Idx)
49330 , p_source_14 => l_array_source_14(Idx)
49331 , p_source_15 => l_array_source_15(Idx)
49332 , p_source_17 => l_array_source_17(Idx)
49333 , p_source_19 => l_array_source_19(Idx)
49334 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49335 , p_source_21 => l_array_source_21(Idx)
49336 , p_source_22 => l_array_source_22(Idx)
49337 , p_source_23 => l_array_source_23(Idx)
49338 , p_source_24 => l_array_source_24(Idx)
49339 , p_source_25 => l_array_source_25(Idx)
49340 , p_source_26 => l_array_source_26(Idx)
49341 , p_source_27 => l_array_source_27(Idx)
49342 , p_source_28 => l_array_source_28(Idx)
49343 , p_source_29 => l_array_source_29(Idx)
49344 , p_source_31 => l_array_source_31(Idx)
49345 , p_source_32 => l_array_source_32(Idx)
49346 , p_source_35 => l_array_source_35(Idx)
49347 , p_source_36 => l_array_source_36(Idx)
49348 , p_source_37 => l_array_source_37(Idx)
49349 );
49350 If(l_balance_type_code = 'A') THEN
49351 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49352 END IF;
49353
49354 --
49355
49356
49357 --
49358 AcctLineType_38 (
49359 p_application_id => p_application_id
49360 ,p_event_id => l_event_id
49361 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49362 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49363 ,p_actual_flag => l_actual_flag
49364 ,p_balance_type_code => l_balance_type_code
49365 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49366
49367 , p_source_3 => l_array_source_3(Idx)
49368 , p_source_7 => l_array_source_7(Idx)
49369 , p_source_8 => l_array_source_8(Idx)
49370 , p_source_9 => l_array_source_9(Idx)
49371 , p_source_10 => l_array_source_10(Idx)
49372 , p_source_13 => l_array_source_13(Idx)
49373 , p_source_14 => l_array_source_14(Idx)
49374 , p_source_15 => l_array_source_15(Idx)
49375 , p_source_17 => l_array_source_17(Idx)
49376 , p_source_19 => l_array_source_19(Idx)
49377 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49378 , p_source_21 => l_array_source_21(Idx)
49379 , p_source_22 => l_array_source_22(Idx)
49380 , p_source_23 => l_array_source_23(Idx)
49381 , p_source_24 => l_array_source_24(Idx)
49382 , p_source_25 => l_array_source_25(Idx)
49383 , p_source_26 => l_array_source_26(Idx)
49384 , p_source_27 => l_array_source_27(Idx)
49385 , p_source_28 => l_array_source_28(Idx)
49386 , p_source_29 => l_array_source_29(Idx)
49387 , p_source_31 => l_array_source_31(Idx)
49388 , p_source_32 => l_array_source_32(Idx)
49389 , p_source_35 => l_array_source_35(Idx)
49390 , p_source_36 => l_array_source_36(Idx)
49391 , p_source_37 => l_array_source_37(Idx)
49392 );
49393 If(l_balance_type_code = 'A') THEN
49394 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49395 END IF;
49396
49397 --
49398
49399
49400 --
49401 AcctLineType_39 (
49402 p_application_id => p_application_id
49403 ,p_event_id => l_event_id
49404 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49405 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49406 ,p_actual_flag => l_actual_flag
49407 ,p_balance_type_code => l_balance_type_code
49408 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49409
49410 , p_source_3 => l_array_source_3(Idx)
49411 , p_source_7 => l_array_source_7(Idx)
49412 , p_source_8 => l_array_source_8(Idx)
49413 , p_source_9 => l_array_source_9(Idx)
49414 , p_source_10 => l_array_source_10(Idx)
49415 , p_source_11 => l_array_source_11(Idx)
49416 , p_source_13 => l_array_source_13(Idx)
49417 , p_source_14 => l_array_source_14(Idx)
49418 , p_source_15 => l_array_source_15(Idx)
49419 , p_source_17 => l_array_source_17(Idx)
49420 , p_source_19 => l_array_source_19(Idx)
49421 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49422 , p_source_21 => l_array_source_21(Idx)
49423 , p_source_22 => l_array_source_22(Idx)
49424 , p_source_23 => l_array_source_23(Idx)
49425 , p_source_24 => l_array_source_24(Idx)
49426 , p_source_25 => l_array_source_25(Idx)
49427 , p_source_26 => l_array_source_26(Idx)
49428 , p_source_27 => l_array_source_27(Idx)
49429 , p_source_28 => l_array_source_28(Idx)
49430 , p_source_29 => l_array_source_29(Idx)
49431 , p_source_31 => l_array_source_31(Idx)
49432 , p_source_32 => l_array_source_32(Idx)
49433 , p_source_35 => l_array_source_35(Idx)
49434 , p_source_36 => l_array_source_36(Idx)
49435 , p_source_37 => l_array_source_37(Idx)
49436 );
49437 If(l_balance_type_code = 'A') THEN
49438 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49439 END IF;
49440
49441 --
49442
49443
49444 --
49445 AcctLineType_40 (
49446 p_application_id => p_application_id
49447 ,p_event_id => l_event_id
49448 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49449 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49450 ,p_actual_flag => l_actual_flag
49451 ,p_balance_type_code => l_balance_type_code
49452 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49453
49454 , p_source_7 => l_array_source_7(Idx)
49455 , p_source_8 => l_array_source_8(Idx)
49456 , p_source_9 => l_array_source_9(Idx)
49457 , p_source_10 => l_array_source_10(Idx)
49458 , p_source_13 => l_array_source_13(Idx)
49459 , p_source_14 => l_array_source_14(Idx)
49460 , p_source_15 => l_array_source_15(Idx)
49461 , p_source_17 => l_array_source_17(Idx)
49462 , p_source_19 => l_array_source_19(Idx)
49463 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49464 , p_source_21 => l_array_source_21(Idx)
49465 , p_source_22 => l_array_source_22(Idx)
49466 , p_source_23 => l_array_source_23(Idx)
49467 , p_source_24 => l_array_source_24(Idx)
49468 , p_source_25 => l_array_source_25(Idx)
49469 , p_source_26 => l_array_source_26(Idx)
49470 , p_source_27 => l_array_source_27(Idx)
49471 , p_source_28 => l_array_source_28(Idx)
49472 , p_source_29 => l_array_source_29(Idx)
49473 , p_source_31 => l_array_source_31(Idx)
49474 , p_source_32 => l_array_source_32(Idx)
49475 );
49476 If(l_balance_type_code = 'A') THEN
49477 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49478 END IF;
49479
49480 --
49481
49482
49483 --
49484 AcctLineType_41 (
49485 p_application_id => p_application_id
49486 ,p_event_id => l_event_id
49487 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49488 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49489 ,p_actual_flag => l_actual_flag
49490 ,p_balance_type_code => l_balance_type_code
49491 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49492
49493 , p_source_9 => l_array_source_9(Idx)
49494 , p_source_10 => l_array_source_10(Idx)
49498 , p_source_19 => l_array_source_19(Idx)
49495 , p_source_13 => l_array_source_13(Idx)
49496 , p_source_15 => l_array_source_15(Idx)
49497 , p_source_17 => l_array_source_17(Idx)
49499 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49500 , p_source_21 => l_array_source_21(Idx)
49501 , p_source_22 => l_array_source_22(Idx)
49502 , p_source_23 => l_array_source_23(Idx)
49503 , p_source_24 => l_array_source_24(Idx)
49504 , p_source_25 => l_array_source_25(Idx)
49505 , p_source_26 => l_array_source_26(Idx)
49506 , p_source_27 => l_array_source_27(Idx)
49507 , p_source_28 => l_array_source_28(Idx)
49508 , p_source_29 => l_array_source_29(Idx)
49509 , p_source_31 => l_array_source_31(Idx)
49510 , p_source_32 => l_array_source_32(Idx)
49511 );
49512 If(l_balance_type_code = 'A') THEN
49513 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49514 END IF;
49515
49516 --
49517
49518
49519 --
49520 AcctLineType_42 (
49521 p_application_id => p_application_id
49522 ,p_event_id => l_event_id
49523 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49524 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49525 ,p_actual_flag => l_actual_flag
49526 ,p_balance_type_code => l_balance_type_code
49527 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49528
49529 , p_source_9 => l_array_source_9(Idx)
49530 , p_source_13 => l_array_source_13(Idx)
49531 , p_source_15 => l_array_source_15(Idx)
49532 , p_source_17 => l_array_source_17(Idx)
49533 , p_source_19 => l_array_source_19(Idx)
49534 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49535 , p_source_21 => l_array_source_21(Idx)
49536 , p_source_22 => l_array_source_22(Idx)
49537 , p_source_23 => l_array_source_23(Idx)
49538 , p_source_24 => l_array_source_24(Idx)
49539 , p_source_25 => l_array_source_25(Idx)
49540 , p_source_26 => l_array_source_26(Idx)
49541 , p_source_27 => l_array_source_27(Idx)
49542 , p_source_28 => l_array_source_28(Idx)
49543 , p_source_29 => l_array_source_29(Idx)
49544 , p_source_31 => l_array_source_31(Idx)
49545 , p_source_32 => l_array_source_32(Idx)
49546 , p_source_33 => l_array_source_33(Idx)
49547 , p_source_34 => l_array_source_34(Idx)
49548 );
49549 If(l_balance_type_code = 'A') THEN
49550 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49551 END IF;
49552
49553 --
49554
49555
49556 --
49557 AcctLineType_43 (
49558 p_application_id => p_application_id
49559 ,p_event_id => l_event_id
49560 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49561 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49562 ,p_actual_flag => l_actual_flag
49563 ,p_balance_type_code => l_balance_type_code
49564 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49565
49566 , p_source_9 => l_array_source_9(Idx)
49567 , p_source_13 => l_array_source_13(Idx)
49568 , p_source_15 => l_array_source_15(Idx)
49569 , p_source_17 => l_array_source_17(Idx)
49570 , p_source_19 => l_array_source_19(Idx)
49571 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49572 , p_source_21 => l_array_source_21(Idx)
49573 , p_source_22 => l_array_source_22(Idx)
49574 , p_source_23 => l_array_source_23(Idx)
49575 , p_source_24 => l_array_source_24(Idx)
49576 , p_source_25 => l_array_source_25(Idx)
49577 , p_source_26 => l_array_source_26(Idx)
49578 , p_source_27 => l_array_source_27(Idx)
49579 , p_source_28 => l_array_source_28(Idx)
49580 , p_source_29 => l_array_source_29(Idx)
49581 , p_source_31 => l_array_source_31(Idx)
49582 , p_source_32 => l_array_source_32(Idx)
49583 , p_source_33 => l_array_source_33(Idx)
49584 , p_source_34 => l_array_source_34(Idx)
49585 );
49586 If(l_balance_type_code = 'A') THEN
49587 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49588 END IF;
49589
49590 --
49591
49592
49593 --
49594 AcctLineType_44 (
49595 p_application_id => p_application_id
49596 ,p_event_id => l_event_id
49597 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49598 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49599 ,p_actual_flag => l_actual_flag
49600 ,p_balance_type_code => l_balance_type_code
49601 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49602
49603 , p_source_3 => l_array_source_3(Idx)
49604 , p_source_7 => l_array_source_7(Idx)
49605 , p_source_9 => l_array_source_9(Idx)
49606 , p_source_13 => l_array_source_13(Idx)
49607 , p_source_15 => l_array_source_15(Idx)
49608 , p_source_17 => l_array_source_17(Idx)
49609 , p_source_19 => l_array_source_19(Idx)
49610 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49611 , p_source_21 => l_array_source_21(Idx)
49612 , p_source_22 => l_array_source_22(Idx)
49613 , p_source_23 => l_array_source_23(Idx)
49614 , p_source_24 => l_array_source_24(Idx)
49615 , p_source_25 => l_array_source_25(Idx)
49616 , p_source_26 => l_array_source_26(Idx)
49617 , p_source_27 => l_array_source_27(Idx)
49618 , p_source_28 => l_array_source_28(Idx)
49619 , p_source_29 => l_array_source_29(Idx)
49620 , p_source_31 => l_array_source_31(Idx)
49621 , p_source_32 => l_array_source_32(Idx)
49622 , p_source_33 => l_array_source_33(Idx)
49623 , p_source_34 => l_array_source_34(Idx)
49624 , p_source_35 => l_array_source_35(Idx)
49625 , p_source_36 => l_array_source_36(Idx)
49626 , p_source_37 => l_array_source_37(Idx)
49627 );
49628 If(l_balance_type_code = 'A') THEN
49629 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49630 END IF;
49631
49632 --
49633
49634
49635 --
49636 AcctLineType_45 (
49637 p_application_id => p_application_id
49638 ,p_event_id => l_event_id
49639 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49643 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49640 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49641 ,p_actual_flag => l_actual_flag
49642 ,p_balance_type_code => l_balance_type_code
49644
49645 , p_source_3 => l_array_source_3(Idx)
49646 , p_source_7 => l_array_source_7(Idx)
49647 , p_source_8 => l_array_source_8(Idx)
49648 , p_source_9 => l_array_source_9(Idx)
49649 , p_source_13 => l_array_source_13(Idx)
49650 , p_source_15 => l_array_source_15(Idx)
49651 , p_source_17 => l_array_source_17(Idx)
49652 , p_source_19 => l_array_source_19(Idx)
49653 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49654 , p_source_21 => l_array_source_21(Idx)
49655 , p_source_22 => l_array_source_22(Idx)
49656 , p_source_23 => l_array_source_23(Idx)
49657 , p_source_24 => l_array_source_24(Idx)
49658 , p_source_25 => l_array_source_25(Idx)
49659 , p_source_26 => l_array_source_26(Idx)
49660 , p_source_27 => l_array_source_27(Idx)
49661 , p_source_28 => l_array_source_28(Idx)
49662 , p_source_29 => l_array_source_29(Idx)
49663 , p_source_31 => l_array_source_31(Idx)
49664 , p_source_32 => l_array_source_32(Idx)
49665 , p_source_33 => l_array_source_33(Idx)
49666 , p_source_34 => l_array_source_34(Idx)
49667 , p_source_35 => l_array_source_35(Idx)
49668 , p_source_36 => l_array_source_36(Idx)
49669 , p_source_37 => l_array_source_37(Idx)
49670 );
49671 If(l_balance_type_code = 'A') THEN
49672 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49673 END IF;
49674
49675 --
49676
49677
49678 --
49679 AcctLineType_76 (
49680 p_application_id => p_application_id
49681 ,p_event_id => l_event_id
49682 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49683 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49684 ,p_actual_flag => l_actual_flag
49685 ,p_balance_type_code => l_balance_type_code
49686 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49687
49688 , p_source_3 => l_array_source_3(Idx)
49689 , p_source_7 => l_array_source_7(Idx)
49690 , p_source_8 => l_array_source_8(Idx)
49691 , p_source_9 => l_array_source_9(Idx)
49692 , p_source_13 => l_array_source_13(Idx)
49693 , p_source_15 => l_array_source_15(Idx)
49694 , p_source_17 => l_array_source_17(Idx)
49695 , p_source_19 => l_array_source_19(Idx)
49696 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49697 , p_source_21 => l_array_source_21(Idx)
49698 , p_source_22 => l_array_source_22(Idx)
49699 , p_source_23 => l_array_source_23(Idx)
49700 , p_source_24 => l_array_source_24(Idx)
49701 , p_source_25 => l_array_source_25(Idx)
49702 , p_source_26 => l_array_source_26(Idx)
49703 , p_source_27 => l_array_source_27(Idx)
49704 , p_source_28 => l_array_source_28(Idx)
49705 , p_source_29 => l_array_source_29(Idx)
49706 , p_source_32 => l_array_source_32(Idx)
49707 , p_source_35 => l_array_source_35(Idx)
49708 , p_source_36 => l_array_source_36(Idx)
49709 , p_source_37 => l_array_source_37(Idx)
49710 );
49711 If(l_balance_type_code = 'A') THEN
49712 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49713 END IF;
49714
49715 --
49716
49717
49718 --
49719 AcctLineType_77 (
49720 p_application_id => p_application_id
49721 ,p_event_id => l_event_id
49722 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49723 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49724 ,p_actual_flag => l_actual_flag
49725 ,p_balance_type_code => l_balance_type_code
49726 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49727
49728 , p_source_3 => l_array_source_3(Idx)
49729 , p_source_9 => l_array_source_9(Idx)
49730 , p_source_13 => l_array_source_13(Idx)
49731 , p_source_15 => l_array_source_15(Idx)
49732 , p_source_17 => l_array_source_17(Idx)
49733 , p_source_19 => l_array_source_19(Idx)
49734 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49735 , p_source_21 => l_array_source_21(Idx)
49736 , p_source_22 => l_array_source_22(Idx)
49737 , p_source_23 => l_array_source_23(Idx)
49738 , p_source_24 => l_array_source_24(Idx)
49739 , p_source_25 => l_array_source_25(Idx)
49740 , p_source_26 => l_array_source_26(Idx)
49741 , p_source_27 => l_array_source_27(Idx)
49742 , p_source_28 => l_array_source_28(Idx)
49743 , p_source_29 => l_array_source_29(Idx)
49744 , p_source_32 => l_array_source_32(Idx)
49745 , p_source_35 => l_array_source_35(Idx)
49746 , p_source_36 => l_array_source_36(Idx)
49747 , p_source_37 => l_array_source_37(Idx)
49748 );
49749 If(l_balance_type_code = 'A') THEN
49750 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49751 END IF;
49752
49753 --
49754
49755
49756 --
49757 AcctLineType_80 (
49758 p_application_id => p_application_id
49759 ,p_event_id => l_event_id
49760 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49761 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49762 ,p_actual_flag => l_actual_flag
49763 ,p_balance_type_code => l_balance_type_code
49764 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49765
49766 , p_source_9 => l_array_source_9(Idx)
49767 , p_source_13 => l_array_source_13(Idx)
49768 , p_source_15 => l_array_source_15(Idx)
49769 , p_source_17 => l_array_source_17(Idx)
49770 , p_source_19 => l_array_source_19(Idx)
49771 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49772 , p_source_21 => l_array_source_21(Idx)
49773 , p_source_22 => l_array_source_22(Idx)
49774 , p_source_23 => l_array_source_23(Idx)
49775 , p_source_24 => l_array_source_24(Idx)
49776 , p_source_25 => l_array_source_25(Idx)
49777 , p_source_26 => l_array_source_26(Idx)
49778 , p_source_27 => l_array_source_27(Idx)
49779 , p_source_28 => l_array_source_28(Idx)
49780 , p_source_29 => l_array_source_29(Idx)
49781 , p_source_31 => l_array_source_31(Idx)
49782 , p_source_32 => l_array_source_32(Idx)
49783 , p_source_33 => l_array_source_33(Idx)
49784 , p_source_34 => l_array_source_34(Idx)
49785 );
49786 If(l_balance_type_code = 'A') THEN
49787 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49788 END IF;
49789
49790 --
49791
49792
49793 --
49794 AcctLineType_81 (
49795 p_application_id => p_application_id
49796 ,p_event_id => l_event_id
49797 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49798 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49799 ,p_actual_flag => l_actual_flag
49800 ,p_balance_type_code => l_balance_type_code
49801 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49802
49803 , p_source_9 => l_array_source_9(Idx)
49804 , p_source_13 => l_array_source_13(Idx)
49805 , p_source_15 => l_array_source_15(Idx)
49806 , p_source_17 => l_array_source_17(Idx)
49807 , p_source_19 => l_array_source_19(Idx)
49808 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
49809 , p_source_21 => l_array_source_21(Idx)
49810 , p_source_22 => l_array_source_22(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_31 => l_array_source_31(Idx)
49819 , p_source_32 => l_array_source_32(Idx)
49820 , p_source_33 => l_array_source_33(Idx)
49821 , p_source_34 => l_array_source_34(Idx)
49822 );
49823 If(l_balance_type_code = 'A') THEN
49824 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49825 END IF;
49826
49827 --
49828
49829 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
49830 -- or secondary ledger that has different currency with primary
49831 -- or alc that is calculated by sla
49832 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
49833 (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'))
49834
49835 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
49836 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
49837 AND (l_actual_flag = 'A')) THEN
49838 XLA_AE_LINES_PKG.CreateGainOrLossLines(
49839 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
49840 ,p_application_id => p_application_id
49841 ,p_amb_context_code => 'DEFAULT'
49842 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
49843 ,p_event_class_code => C_EVENT_CLASS_CODE
49844 ,p_event_type_code => C_EVENT_TYPE_CODE
49845
49846 ,p_gain_ccid => -1
49847 ,p_loss_ccid => -1
49848
49849 ,p_actual_flag => l_actual_flag
49850 ,p_enc_flag => null
49851 ,p_actual_g_l_ref => l_actual_gain_loss_ref
49852 ,p_enc_g_l_ref => null
49853 );
49854 END IF;
49855 END IF;
49856 END IF;
49857
49858 ELSE
49859 --
49860 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
49861 --
49862 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
49863 trace
49864 (p_msg => 'Trancaction revesal option is Y'
49865 ,p_level => C_LEVEL_STATEMENT
49866 ,p_module => l_log_module);
49867 END IF;
49868 END IF;
49869
49870 END LOOP;
49871 l_result := XLA_AE_LINES_PKG.InsertLines ;
49872 end loop;
49873 close line_cur;
49874
49875
49876 --
49877 -- insert headers into xla_ae_headers_gt table
49878 --
49879 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
49880
49881 -- insert into errors table here.
49882
49883 END LOOP;
49884
49885 --
49886 -- 4865292
49887 --
49888 -- Compare g_hdr_extract_count with event count in
49889 -- CreateHeadersAndLines.
49890 --
49891 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
49892
49893 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
49894 trace (p_msg => '# rows extracted from header extract objects '
49895 || ' (running total): '
49896 || g_hdr_extract_count
49897 ,p_level => C_LEVEL_STATEMENT
49898 ,p_module => l_log_module);
49899 END IF;
49900
49901 CLOSE header_cur;
49902 --
49903
49904 --
49905 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49906 trace
49907 (p_msg => 'END of EventClass_86'
49908 ,p_level => C_LEVEL_PROCEDURE
49909 ,p_module => l_log_module);
49910 END IF;
49911 --
49912 RETURN l_result;
49913 EXCEPTION
49914 WHEN xla_exceptions_pkg.application_exception THEN
49915
49916 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
49917
49918
49919 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
49920
49921 RAISE;
49922 WHEN OTHERS THEN
49923 xla_exceptions_pkg.raise_message
49924 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.EventClass_86');
49925 END EventClass_86;
49926 --
49927
49928 ---------------------------------------
49929 --
49930 -- PRIVATE PROCEDURE
49931 -- insert_sources_87
49932 --
49933 ----------------------------------------
49934 --
49935 PROCEDURE insert_sources_87(
49936 p_target_ledger_id IN NUMBER
49937 , p_language IN VARCHAR2
49938 , p_sla_ledger_id IN NUMBER
49939 , p_pad_start_date IN DATE
49940 , p_pad_end_date IN DATE
49941 )
49942 IS
49943
49944 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RELEASE_ALL';
49945 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RELEASE';
49946 p_apps_owner VARCHAR2(30);
49947 l_log_module VARCHAR2(240);
49948 BEGIN
49949 IF g_log_enabled THEN
49950 l_log_module := C_DEFAULT_MODULE||'.insert_sources_87';
49951 END IF;
49952 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49953
49954 trace
49955 (p_msg => 'BEGIN of insert_sources_87'
49956 ,p_level => C_LEVEL_PROCEDURE
49957 ,p_module => l_log_module);
49958
49959 END IF;
49960
49961 -- select APPS owner
49962 SELECT oracle_username
49963 INTO p_apps_owner
49964 FROM fnd_oracle_userid
49965 WHERE read_only_flag = 'U'
49966 ;
49967
49968 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
49969 trace
49970 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
49971 ' - p_language = '||p_language||
49972 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
49973 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
49974 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
49975 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
49976 ,p_level => C_LEVEL_STATEMENT
49977 ,p_module => l_log_module);
49978 END IF;
49979
49980
49981 --
49982 INSERT INTO xla_diag_sources --hdr2
49983 (
49984 event_id
49985 , ledger_id
49986 , sla_ledger_id
49987 , description_language
49988 , object_name
49989 , object_type_code
49990 , line_number
49991 , source_application_id
49992 , source_type_code
49993 , source_code
49994 , source_value
49995 , source_meaning
49996 , created_by
49997 , creation_date
49998 , last_update_date
49999 , last_updated_by
50000 , last_update_login
50001 , program_update_date
50002 , program_application_id
50003 , program_id
50004 , request_id
50005 )
50006 SELECT
50007 event_id
50008 , p_target_ledger_id
50009 , p_sla_ledger_id
50010 , p_language
50011 , object_name
50012 , object_type_code
50013 , line_number
50014 , source_application_id
50015 , source_type_code
50016 , source_code
50017 , SUBSTR(source_value ,1,1996)
50018 , SUBSTR(source_meaning ,1,200)
50019 , xla_environment_pkg.g_Usr_Id
50020 , TRUNC(SYSDATE)
50021 , TRUNC(SYSDATE)
50022 , xla_environment_pkg.g_Usr_Id
50023 , xla_environment_pkg.g_Login_Id
50024 , TRUNC(SYSDATE)
50025 , xla_environment_pkg.g_Prog_Appl_Id
50026 , xla_environment_pkg.g_Prog_Id
50027 , xla_environment_pkg.g_Req_Id
50028 FROM (
50029 SELECT xet.event_id event_id
50030 , 0 line_number
50031 , CASE r
50032 WHEN 1 THEN 'PO_EXTRACT_HEADER_V'
50033 WHEN 2 THEN 'PO_EXTRACT_HEADER_V'
50034 WHEN 3 THEN 'PO_RELEASES_REF_V'
50035 WHEN 4 THEN 'PO_EXTRACT_HEADER_V'
50036 WHEN 5 THEN 'PO_EXTRACT_HEADER_V'
50037 WHEN 6 THEN 'PO_EXTRACT_HEADER_V'
50038
50039 ELSE null
50040 END object_name
50041 , CASE r
50042 WHEN 1 THEN 'HEADER'
50043 WHEN 2 THEN 'HEADER'
50044 WHEN 3 THEN 'HEADER'
50045 WHEN 4 THEN 'HEADER'
50046 WHEN 5 THEN 'HEADER'
50047 WHEN 6 THEN 'HEADER'
50048
50049 ELSE null
50050 END object_type_code
50051 , CASE r
50052 WHEN 1 THEN '201'
50053 WHEN 2 THEN '201'
50054 WHEN 3 THEN '201'
50055 WHEN 4 THEN '201'
50056 WHEN 5 THEN '201'
50057 WHEN 6 THEN '201'
50058
50059 ELSE null
50060 END source_application_id
50061 , 'S' source_type_code
50062 , CASE r
50063 WHEN 1 THEN 'PO_TYPE'
50064 WHEN 2 THEN 'PO_NUMBER'
50065 WHEN 3 THEN 'PO_RELEASE_NUMBER'
50066 WHEN 4 THEN 'PO_RELEASE_ID'
50067 WHEN 5 THEN 'ENCUMBRANCE_TYPE_ID'
50068 WHEN 6 THEN 'GL_DATE'
50069
50070 ELSE null
50071 END source_code
50072 , CASE r
50073 WHEN 1 THEN TO_CHAR(h4.PO_TYPE)
50074 WHEN 2 THEN TO_CHAR(h4.PO_NUMBER)
50075 WHEN 3 THEN TO_CHAR(h5.PO_RELEASE_NUMBER)
50076 WHEN 4 THEN TO_CHAR(h4.PO_RELEASE_ID)
50077 WHEN 5 THEN TO_CHAR(h4.ENCUMBRANCE_TYPE_ID)
50078 WHEN 6 THEN TO_CHAR(h4.GL_DATE)
50079
50080 ELSE null
50081 END source_value
50082 , null source_meaning
50083 FROM xla_events_gt xet
50084 , PO_EXTRACT_HEADER_V h4
50085 , PO_RELEASES_REF_V h5
50086 ,(select rownum r from all_objects where rownum <= 6 and owner = p_apps_owner)
50087 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
50088 AND xet.event_class_code = C_EVENT_CLASS_CODE
50089 AND h4.event_id = xet.event_id
50090 AND h4.po_release_id = h5.po_release_id
50091 )
50092 ;
50093 --
50094 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
50095
50096 trace
50097 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
50098 ,p_level => C_LEVEL_STATEMENT
50099 ,p_module => l_log_module);
50100
50101 END IF;
50102 --
50103
50104
50105
50106 --
50107 INSERT INTO xla_diag_sources --line2
50108 (
50109 event_id
50110 , ledger_id
50111 , sla_ledger_id
50112 , description_language
50113 , object_name
50114 , object_type_code
50115 , line_number
50116 , source_application_id
50117 , source_type_code
50118 , source_code
50119 , source_value
50120 , source_meaning
50121 , created_by
50122 , creation_date
50123 , last_update_date
50124 , last_updated_by
50125 , last_update_login
50126 , program_update_date
50127 , program_application_id
50128 , program_id
50129 , request_id
50130 )
50131 SELECT event_id
50132 , p_target_ledger_id
50133 , p_sla_ledger_id
50134 , p_language
50135 , object_name
50136 , object_type_code
50137 , line_number
50138 , source_application_id
50139 , source_type_code
50140 , source_code
50141 , SUBSTR(source_value,1,1996)
50142 , SUBSTR(source_meaning ,1,200)
50143 , xla_environment_pkg.g_Usr_Id
50144 , TRUNC(SYSDATE)
50145 , TRUNC(SYSDATE)
50146 , xla_environment_pkg.g_Usr_Id
50147 , xla_environment_pkg.g_Login_Id
50148 , TRUNC(SYSDATE)
50149 , xla_environment_pkg.g_Prog_Appl_Id
50150 , xla_environment_pkg.g_Prog_Id
50151 , xla_environment_pkg.g_Req_Id
50152 FROM (
50153 SELECT xet.event_id event_id
50154 , l3.line_number line_number
50155 , CASE r
50156 WHEN 1 THEN 'PO_EXTRACT_DETAIL_V'
50157 WHEN 2 THEN 'FV_XLA_PO_REF_V'
50158 WHEN 3 THEN 'FV_XLA_PO_REF_V'
50159 WHEN 4 THEN 'PO_EXTRACT_DETAIL_V'
50160 WHEN 5 THEN 'FV_XLA_PO_REF_V'
50161 WHEN 6 THEN 'FV_XLA_PO_REF_V'
50162 WHEN 7 THEN 'PO_EXTRACT_DETAIL_V'
50163 WHEN 8 THEN 'PO_EXTRACT_DETAIL_V'
50164 WHEN 9 THEN 'PO_EXTRACT_DETAIL_V'
50165 WHEN 10 THEN 'PO_EXTRACT_DETAIL_V'
50166 WHEN 11 THEN 'PO_EXTRACT_DETAIL_V'
50167 WHEN 12 THEN 'PO_EXTRACT_DETAIL_V'
50168 WHEN 13 THEN 'PO_EXTRACT_DETAIL_V'
50169 WHEN 14 THEN 'PO_EXTRACT_DETAIL_V'
50170 WHEN 15 THEN 'PO_EXTRACT_DETAIL_V'
50171 WHEN 16 THEN 'PO_EXTRACT_DETAIL_V'
50172 WHEN 17 THEN 'PO_EXTRACT_DETAIL_V'
50173 WHEN 18 THEN 'PO_EXTRACT_DETAIL_V'
50174 WHEN 19 THEN 'PO_EXTRACT_DETAIL_V'
50175 WHEN 20 THEN 'FV_XLA_PO_REF_V'
50176 WHEN 21 THEN 'PO_EXTRACT_DETAIL_V'
50177 WHEN 22 THEN 'PO_EXTRACT_DETAIL_V'
50178 WHEN 23 THEN 'PO_EXTRACT_DETAIL_V'
50179 WHEN 24 THEN 'PO_EXTRACT_DETAIL_V'
50180 WHEN 25 THEN 'PO_DISTS_REF_V'
50181 WHEN 26 THEN 'PO_DISTS_REF_V'
50182 WHEN 27 THEN 'PO_DISTS_REF_V'
50183 WHEN 28 THEN 'FV_XLA_PO_REF_V'
50184 WHEN 29 THEN 'FV_XLA_PO_REF_V'
50185 WHEN 30 THEN 'FV_XLA_PO_REF_V'
50186
50187 ELSE null
50188 END object_name
50189 , CASE r
50190 WHEN 1 THEN 'LINE'
50191 WHEN 2 THEN 'LINE'
50192 WHEN 3 THEN 'LINE'
50193 WHEN 4 THEN 'LINE'
50194 WHEN 5 THEN 'LINE'
50195 WHEN 6 THEN 'LINE'
50196 WHEN 7 THEN 'LINE'
50197 WHEN 8 THEN 'LINE'
50198 WHEN 9 THEN 'LINE'
50199 WHEN 10 THEN 'LINE'
50200 WHEN 11 THEN 'LINE'
50201 WHEN 12 THEN 'LINE'
50202 WHEN 13 THEN 'LINE'
50203 WHEN 14 THEN 'LINE'
50204 WHEN 15 THEN 'LINE'
50205 WHEN 16 THEN 'LINE'
50206 WHEN 17 THEN 'LINE'
50207 WHEN 18 THEN 'LINE'
50208 WHEN 19 THEN 'LINE'
50209 WHEN 20 THEN 'LINE'
50210 WHEN 21 THEN 'LINE'
50211 WHEN 22 THEN 'LINE'
50212 WHEN 23 THEN 'LINE'
50213 WHEN 24 THEN 'LINE'
50214 WHEN 25 THEN 'LINE'
50215 WHEN 26 THEN 'LINE'
50216 WHEN 27 THEN 'LINE'
50217 WHEN 28 THEN 'LINE'
50218 WHEN 29 THEN 'LINE'
50219 WHEN 30 THEN 'LINE'
50220
50221 ELSE null
50222 END object_type_code
50223 , CASE r
50224 WHEN 1 THEN '201'
50225 WHEN 2 THEN '8901'
50226 WHEN 3 THEN '8901'
50227 WHEN 4 THEN '201'
50228 WHEN 5 THEN '8901'
50229 WHEN 6 THEN '8901'
50230 WHEN 7 THEN '201'
50231 WHEN 8 THEN '201'
50232 WHEN 9 THEN '201'
50233 WHEN 10 THEN '201'
50234 WHEN 11 THEN '201'
50235 WHEN 12 THEN '201'
50236 WHEN 13 THEN '201'
50237 WHEN 14 THEN '201'
50238 WHEN 15 THEN '201'
50239 WHEN 16 THEN '201'
50240 WHEN 17 THEN '201'
50241 WHEN 18 THEN '201'
50242 WHEN 19 THEN '201'
50243 WHEN 20 THEN '8901'
50244 WHEN 21 THEN '201'
50245 WHEN 22 THEN '201'
50246 WHEN 23 THEN '201'
50247 WHEN 24 THEN '201'
50248 WHEN 25 THEN '201'
50249 WHEN 26 THEN '201'
50250 WHEN 27 THEN '201'
50251 WHEN 28 THEN '8901'
50252 WHEN 29 THEN '8901'
50253 WHEN 30 THEN '8901'
50254
50255 ELSE null
50256 END source_application_id
50257 , 'S' source_type_code
50258 , CASE r
50259 WHEN 1 THEN 'JE_LINE_DESCRIPTION'
50260 WHEN 2 THEN 'FEDERAL_FUND_CATEGORY'
50261 WHEN 3 THEN 'FEDERAL_FUND_EXPIRED_STATUS'
50262 WHEN 4 THEN 'BUDGET_ACCOUNT'
50263 WHEN 5 THEN 'FEDERAL_PRIOR_YEAR_FLAG'
50264 WHEN 6 THEN 'FEDERAL_NET_PYA_ADJ_AMT'
50265 WHEN 7 THEN 'MAIN_OR_BACKING_CODE'
50266 WHEN 8 THEN 'ACCOUNTING_REVERSAL_FLAG'
50267 WHEN 9 THEN 'DISTRIBUTION_LINK_TYPE'
50268 WHEN 10 THEN 'PO_DISTRIBUTION_ID'
50269 WHEN 11 THEN 'APPLIED_TO_APPL_ID'
50270 WHEN 12 THEN 'APPLIED_TO_DIST_LINK_TYPE'
50271 WHEN 13 THEN 'APPLIED_TO_ENTITY_CODE'
50272 WHEN 14 THEN 'APPLIED_TO_DIST_ID_1'
50273 WHEN 15 THEN 'APPLIED_TO_HEADER_ID_1'
50274 WHEN 16 THEN 'ENTERED_AMT'
50275 WHEN 17 THEN 'CURRENCY_CODE'
50276 WHEN 18 THEN 'ACCOUNTED_AMT'
50277 WHEN 19 THEN 'PO_ENCUM_UPG_OPTION'
50278 WHEN 20 THEN 'FEDERAL_UNANTICIPATED_AMT'
50279 WHEN 21 THEN 'JFMIP_REFERENCE'
50280 WHEN 22 THEN 'PO_UPG_ENC_TYPE_ID'
50281 WHEN 23 THEN 'ALLOC_TO_DISTRIBUTION_TYPE'
50282 WHEN 24 THEN 'ALLOC_TO_DIST_ID_1'
50283 WHEN 25 THEN 'CURRENCY_CONVERSION_DATE'
50284 WHEN 26 THEN 'CURRENCY_CONVERSION_RATE'
50285 WHEN 27 THEN 'CURRENCY_CONVERSION_TYPE'
50286 WHEN 28 THEN 'FEDERAL_PYA_DIFF_AMT'
50287 WHEN 29 THEN 'FEDERAL_ANTICIPATED_AMT'
50288 WHEN 30 THEN 'FEDERAL_PYA_AMT'
50289
50290 ELSE null
50291 END source_code
50292 , CASE r
50293 WHEN 1 THEN TO_CHAR(l3.JE_LINE_DESCRIPTION)
50294 WHEN 2 THEN TO_CHAR(l1.FEDERAL_FUND_CATEGORY)
50295 WHEN 3 THEN TO_CHAR(l1.FEDERAL_FUND_EXPIRED_STATUS)
50296 WHEN 4 THEN TO_CHAR(l3.BUDGET_ACCOUNT)
50297 WHEN 5 THEN TO_CHAR(l1.FEDERAL_PRIOR_YEAR_FLAG)
50298 WHEN 6 THEN TO_CHAR(l1.FEDERAL_NET_PYA_ADJ_AMT)
50299 WHEN 7 THEN TO_CHAR(l3.MAIN_OR_BACKING_CODE)
50300 WHEN 8 THEN TO_CHAR(l3.ACCOUNTING_REVERSAL_FLAG)
50301 WHEN 9 THEN TO_CHAR(l3.DISTRIBUTION_LINK_TYPE)
50302 WHEN 10 THEN TO_CHAR(l3.PO_DISTRIBUTION_ID)
50303 WHEN 11 THEN TO_CHAR(l3.APPLIED_TO_APPL_ID)
50304 WHEN 12 THEN TO_CHAR(l3.APPLIED_TO_DIST_LINK_TYPE)
50305 WHEN 13 THEN TO_CHAR(l3.APPLIED_TO_ENTITY_CODE)
50306 WHEN 14 THEN TO_CHAR(l3.APPLIED_TO_DIST_ID_1)
50307 WHEN 15 THEN TO_CHAR(l3.APPLIED_TO_HEADER_ID_1)
50308 WHEN 16 THEN TO_CHAR(l3.ENTERED_AMT)
50309 WHEN 17 THEN TO_CHAR(l3.CURRENCY_CODE)
50310 WHEN 18 THEN TO_CHAR(l3.ACCOUNTED_AMT)
50311 WHEN 19 THEN TO_CHAR(l3.PO_ENCUM_UPG_OPTION)
50312 WHEN 20 THEN TO_CHAR(l1.FEDERAL_UNANTICIPATED_AMT)
50313 WHEN 21 THEN TO_CHAR(l3.JFMIP_REFERENCE)
50314 WHEN 22 THEN TO_CHAR(l3.PO_UPG_ENC_TYPE_ID)
50315 WHEN 23 THEN TO_CHAR(l3.ALLOC_TO_DISTRIBUTION_TYPE)
50316 WHEN 24 THEN TO_CHAR(l3.ALLOC_TO_DIST_ID_1)
50317 WHEN 25 THEN TO_CHAR(l2.CURRENCY_CONVERSION_DATE)
50318 WHEN 26 THEN TO_CHAR(l2.CURRENCY_CONVERSION_RATE)
50319 WHEN 27 THEN TO_CHAR(l2.CURRENCY_CONVERSION_TYPE)
50320 WHEN 28 THEN TO_CHAR(l1.FEDERAL_PYA_DIFF_AMT)
50321 WHEN 29 THEN TO_CHAR(l1.FEDERAL_ANTICIPATED_AMT)
50322 WHEN 30 THEN TO_CHAR(l1.FEDERAL_PYA_AMT)
50323
50324 ELSE null
50325 END source_value
50326 , null source_meaning
50327 FROM xla_events_gt xet
50328 , FV_XLA_PO_REF_V l1
50329 , PO_DISTS_REF_V l2
50330 , PO_EXTRACT_DETAIL_V l3
50331 , (select rownum r from all_objects where rownum <= 30 and owner = p_apps_owner)
50332 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
50333 AND xet.event_class_code = C_EVENT_CLASS_CODE
50334 AND l3.event_id = xet.event_id
50335 AND l1.federal_event_id (+) = l3.event_id and l3.line_number = l1.federal_line_number (+) AND l3.po_distribution_id = l2.po_distribution_id (+) and l3.po_distribution_type = l2.po_distribution_type (+)
50336 )
50337 ;
50338 --
50339 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
50340
50341 trace
50342 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
50343 ,p_level => C_LEVEL_STATEMENT
50344 ,p_module => l_log_module);
50345
50346 END IF;
50347
50348
50349 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50350 trace
50351 (p_msg => 'END of insert_sources_87'
50352 ,p_level => C_LEVEL_PROCEDURE
50353 ,p_module => l_log_module);
50354 END IF;
50355 EXCEPTION
50356 WHEN xla_exceptions_pkg.application_exception THEN
50357 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
50358 trace
50359 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
50360 ,p_level => C_LEVEL_EXCEPTION
50361 ,p_module => l_log_module);
50362 END IF;
50363 RAISE;
50364 WHEN OTHERS THEN
50365 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
50366 trace
50367 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
50368 ,p_level => C_LEVEL_EXCEPTION
50369 ,p_module => l_log_module);
50370 END IF;
50371 xla_exceptions_pkg.raise_message
50372 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.insert_sources_87');
50373 END insert_sources_87;
50374 --
50375
50376 ---------------------------------------
50377 --
50378 -- PRIVATE FUNCTION
50379 -- EventClass_87
50380 --
50381 ----------------------------------------
50382 --
50383 FUNCTION EventClass_87
50384 (p_application_id IN NUMBER
50385 ,p_base_ledger_id IN NUMBER
50386 ,p_target_ledger_id IN NUMBER
50387 ,p_language IN VARCHAR2
50388 ,p_currency_code IN VARCHAR2
50389 ,p_sla_ledger_id IN NUMBER
50390 ,p_pad_start_date IN DATE
50391 ,p_pad_end_date IN DATE
50392 ,p_primary_ledger_id IN NUMBER)
50393 RETURN BOOLEAN IS
50394 --
50395 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RELEASE_ALL';
50396 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RELEASE';
50397
50398 l_calculate_acctd_flag VARCHAR2(1) :='N';
50399 l_calculate_g_l_flag VARCHAR2(1) :='N';
50400 --
50401 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
50402 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
50403 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
50404 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
50408 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
50405 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
50406 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
50407 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
50409 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
50410 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
50411 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
50412 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
50413 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
50414 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
50415 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
50416 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
50417 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
50418 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
50419 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
50420 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
50421 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
50422 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
50423 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
50424 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
50425
50426 l_event_id NUMBER;
50427 l_previous_event_id NUMBER;
50428 l_first_event_id NUMBER;
50429 l_last_event_id NUMBER;
50430
50431 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
50432 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50433 --
50434 --
50435 l_result BOOLEAN := TRUE;
50436 l_rows NUMBER := 1000;
50437 l_event_type_name VARCHAR2(80) := 'All';
50438 l_event_class_name VARCHAR2(80) := 'Release';
50439 l_description VARCHAR2(4000);
50440 l_transaction_reversal NUMBER;
50441 l_ae_header_id NUMBER;
50442 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
50443 l_log_module VARCHAR2(240);
50444 --
50445 l_acct_reversal_source VARCHAR2(30);
50446 l_trx_reversal_source VARCHAR2(30);
50447
50448 l_continue_with_lines BOOLEAN := TRUE;
50449 --
50450 l_acc_rev_gl_date_source DATE; -- 4262811
50451 --
50452 type t_array_event_id is table of number index by binary_integer;
50453
50454 l_rec_array_event t_rec_array_event;
50455 l_null_rec_array_event t_rec_array_event;
50456 l_array_ae_header_id xla_number_array_type;
50457 l_actual_flag VARCHAR2(1) := NULL;
50458 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
50459 l_balance_type_code VARCHAR2(1) :=NULL;
50460 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
50461
50462 --
50463 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
50464 --
50465
50466 TYPE t_array_source_1 IS TABLE OF PO_EXTRACT_HEADER_V.PO_TYPE%TYPE INDEX BY BINARY_INTEGER;
50467 TYPE t_array_source_2 IS TABLE OF PO_EXTRACT_HEADER_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
50468 TYPE t_array_source_4 IS TABLE OF PO_RELEASES_REF_V.PO_RELEASE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
50469 TYPE t_array_source_41 IS TABLE OF PO_EXTRACT_HEADER_V.PO_RELEASE_ID%TYPE INDEX BY BINARY_INTEGER;
50470 TYPE t_array_source_48 IS TABLE OF PO_EXTRACT_HEADER_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
50471 TYPE t_array_source_49 IS TABLE OF PO_EXTRACT_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
50472
50473 TYPE t_array_source_3 IS TABLE OF PO_EXTRACT_DETAIL_V.JE_LINE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
50474 TYPE t_array_source_7 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_FUND_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
50475 TYPE t_array_source_8 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_FUND_EXPIRED_STATUS%TYPE INDEX BY BINARY_INTEGER;
50476 TYPE t_array_source_9 IS TABLE OF PO_EXTRACT_DETAIL_V.BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
50477 TYPE t_array_source_10 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_PRIOR_YEAR_FLAG%TYPE INDEX BY BINARY_INTEGER;
50478 TYPE t_array_source_11 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_NET_PYA_ADJ_AMT%TYPE INDEX BY BINARY_INTEGER;
50479 TYPE t_array_source_13 IS TABLE OF PO_EXTRACT_DETAIL_V.MAIN_OR_BACKING_CODE%TYPE INDEX BY BINARY_INTEGER;
50480 TYPE t_array_source_15 IS TABLE OF PO_EXTRACT_DETAIL_V.ACCOUNTING_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
50481 TYPE t_array_source_17 IS TABLE OF PO_EXTRACT_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
50482 TYPE t_array_source_19 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
50483 TYPE t_array_source_21 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
50484 TYPE t_array_source_22 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
50485 TYPE t_array_source_23 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
50486 TYPE t_array_source_24 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_DIST_ID_1%TYPE INDEX BY BINARY_INTEGER;
50487 TYPE t_array_source_25 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_HEADER_ID_1%TYPE INDEX BY BINARY_INTEGER;
50488 TYPE t_array_source_26 IS TABLE OF PO_EXTRACT_DETAIL_V.ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
50489 TYPE t_array_source_27 IS TABLE OF PO_EXTRACT_DETAIL_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
50490 TYPE t_array_source_28 IS TABLE OF PO_EXTRACT_DETAIL_V.ACCOUNTED_AMT%TYPE INDEX BY BINARY_INTEGER;
50491 TYPE t_array_source_29 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
50492 TYPE t_array_source_30 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_UNANTICIPATED_AMT%TYPE INDEX BY BINARY_INTEGER;
50493 TYPE t_array_source_31 IS TABLE OF PO_EXTRACT_DETAIL_V.JFMIP_REFERENCE%TYPE INDEX BY BINARY_INTEGER;
50494 TYPE t_array_source_32 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_UPG_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
50495 TYPE t_array_source_33 IS TABLE OF PO_EXTRACT_DETAIL_V.ALLOC_TO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
50496 TYPE t_array_source_34 IS TABLE OF PO_EXTRACT_DETAIL_V.ALLOC_TO_DIST_ID_1%TYPE INDEX BY BINARY_INTEGER;
50497 TYPE t_array_source_35 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
50498 TYPE t_array_source_36 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
50499 TYPE t_array_source_37 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
50500 TYPE t_array_source_38 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_PYA_DIFF_AMT%TYPE INDEX BY BINARY_INTEGER;
50501 TYPE t_array_source_39 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_ANTICIPATED_AMT%TYPE INDEX BY BINARY_INTEGER;
50502 TYPE t_array_source_40 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_PYA_AMT%TYPE INDEX BY BINARY_INTEGER;
50503
50504 l_array_source_1 t_array_source_1;
50505 l_array_source_2 t_array_source_2;
50506 l_array_source_4 t_array_source_4;
50507 l_array_source_41 t_array_source_41;
50508 l_array_source_48 t_array_source_48;
50509 l_array_source_49 t_array_source_49;
50510
50511 l_array_source_3 t_array_source_3;
50512 l_array_source_7 t_array_source_7;
50513 l_array_source_8 t_array_source_8;
50514 l_array_source_9 t_array_source_9;
50515 l_array_source_10 t_array_source_10;
50516 l_array_source_11 t_array_source_11;
50517 l_array_source_13 t_array_source_13;
50518 l_array_source_15 t_array_source_15;
50519 l_array_source_17 t_array_source_17;
50520 l_array_source_19 t_array_source_19;
50521 l_array_source_21 t_array_source_21;
50522 l_array_source_22 t_array_source_22;
50523 l_array_source_23 t_array_source_23;
50524 l_array_source_24 t_array_source_24;
50525 l_array_source_25 t_array_source_25;
50526 l_array_source_26 t_array_source_26;
50527 l_array_source_27 t_array_source_27;
50528 l_array_source_28 t_array_source_28;
50529 l_array_source_29 t_array_source_29;
50530 l_array_source_30 t_array_source_30;
50531 l_array_source_31 t_array_source_31;
50532 l_array_source_32 t_array_source_32;
50533 l_array_source_33 t_array_source_33;
50534 l_array_source_34 t_array_source_34;
50535 l_array_source_35 t_array_source_35;
50536 l_array_source_36 t_array_source_36;
50537 l_array_source_37 t_array_source_37;
50538 l_array_source_38 t_array_source_38;
50539 l_array_source_39 t_array_source_39;
50540 l_array_source_40 t_array_source_40;
50541
50542 --
50543 CURSOR header_cur
50544 IS
50545 SELECT /*+ leading(xet) cardinality(xet,1) */
50546 -- Event Class Code: RELEASE
50547 xet.entity_id
50548 ,xet.legal_entity_id
50549 ,xet.entity_code
50550 ,xet.transaction_number
50551 ,xet.event_id
50552 ,xet.event_class_code
50553 ,xet.event_type_code
50554 ,xet.event_number
50555 ,xet.event_date
50556 ,xet.transaction_date
50557 ,xet.reference_num_1
50558 ,xet.reference_num_2
50559 ,xet.reference_num_3
50560 ,xet.reference_num_4
50561 ,xet.reference_char_1
50562 ,xet.reference_char_2
50563 ,xet.reference_char_3
50564 ,xet.reference_char_4
50565 ,xet.reference_date_1
50566 ,xet.reference_date_2
50567 ,xet.reference_date_3
50568 ,xet.reference_date_4
50569 ,xet.event_created_by
50570 ,xet.budgetary_control_flag
50571 , h4.PO_TYPE source_1
50572 , h4.PO_NUMBER source_2
50573 , h5.PO_RELEASE_NUMBER source_4
50574 , h4.PO_RELEASE_ID source_41
50575 , h4.ENCUMBRANCE_TYPE_ID source_48
50576 , h4.GL_DATE source_49
50577 FROM xla_events_gt xet
50578 , PO_EXTRACT_HEADER_V h4
50579 , PO_RELEASES_REF_V h5
50580 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
50581 and xet.event_class_code = C_EVENT_CLASS_CODE
50582 and xet.event_status_code <> 'N' AND h4.event_id = xet.event_id
50583 AND h4.po_release_id = h5.po_release_id
50584 ORDER BY event_id
50585 ;
50586
50587
50588 --
50589 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
50590 IS
50591 SELECT /*+ leading(xet) cardinality(xet,1) */
50592 -- Event Class Code: RELEASE
50593 xet.entity_id
50594 ,xet.legal_entity_id
50595 ,xet.entity_code
50596 ,xet.transaction_number
50597 ,xet.event_id
50598 ,xet.event_class_code
50599 ,xet.event_type_code
50600 ,xet.event_number
50601 ,xet.event_date
50602 ,xet.transaction_date
50603 ,xet.reference_num_1
50604 ,xet.reference_num_2
50605 ,xet.reference_num_3
50606 ,xet.reference_num_4
50607 ,xet.reference_char_1
50608 ,xet.reference_char_2
50609 ,xet.reference_char_3
50610 ,xet.reference_char_4
50611 ,xet.reference_date_1
50612 ,xet.reference_date_2
50613 ,xet.reference_date_3
50614 ,xet.reference_date_4
50615 ,xet.event_created_by
50616 ,xet.budgetary_control_flag
50617 , l3.LINE_NUMBER
50618 , l3.JE_LINE_DESCRIPTION source_3
50619 , l1.FEDERAL_FUND_CATEGORY source_7
50620 , l1.FEDERAL_FUND_EXPIRED_STATUS source_8
50621 , l3.BUDGET_ACCOUNT source_9
50622 , l1.FEDERAL_PRIOR_YEAR_FLAG source_10
50623 , l1.FEDERAL_NET_PYA_ADJ_AMT source_11
50624 , l3.MAIN_OR_BACKING_CODE source_13
50625 , l3.ACCOUNTING_REVERSAL_FLAG source_15
50626 , l3.DISTRIBUTION_LINK_TYPE source_17
50627 , l3.PO_DISTRIBUTION_ID source_19
50628 , l3.APPLIED_TO_APPL_ID source_21
50629 , l3.APPLIED_TO_DIST_LINK_TYPE source_22
50630 , l3.APPLIED_TO_ENTITY_CODE source_23
50631 , l3.APPLIED_TO_DIST_ID_1 source_24
50632 , l3.APPLIED_TO_HEADER_ID_1 source_25
50633 , l3.ENTERED_AMT source_26
50634 , l3.CURRENCY_CODE source_27
50635 , l3.ACCOUNTED_AMT source_28
50636 , l3.PO_ENCUM_UPG_OPTION source_29
50637 , l1.FEDERAL_UNANTICIPATED_AMT source_30
50638 , l3.JFMIP_REFERENCE source_31
50639 , l3.PO_UPG_ENC_TYPE_ID source_32
50640 , l3.ALLOC_TO_DISTRIBUTION_TYPE source_33
50641 , l3.ALLOC_TO_DIST_ID_1 source_34
50642 , l2.CURRENCY_CONVERSION_DATE source_35
50643 , l2.CURRENCY_CONVERSION_RATE source_36
50644 , l2.CURRENCY_CONVERSION_TYPE source_37
50645 , l1.FEDERAL_PYA_DIFF_AMT source_38
50646 , l1.FEDERAL_ANTICIPATED_AMT source_39
50647 , l1.FEDERAL_PYA_AMT source_40
50648 FROM xla_events_gt xet
50649 , FV_XLA_PO_REF_V l1
50650 , PO_DISTS_REF_V l2
50651 , PO_EXTRACT_DETAIL_V l3
50652 WHERE xet.event_id between x_first_event_id and x_last_event_id
50653 and xet.event_date between p_pad_start_date and p_pad_end_date
50654 and xet.event_class_code = C_EVENT_CLASS_CODE
50655 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
50656 AND l1.federal_event_id (+) = l3.event_id AND l3.line_number = l1.federal_line_number (+) AND l3.po_distribution_id = l2.po_distribution_id (+) AND l3.po_distribution_type = l2.po_distribution_type (+) ;
50657
50658 --
50659 BEGIN
50660 IF g_log_enabled THEN
50661 l_log_module := C_DEFAULT_MODULE||'.EventClass_87';
50662 END IF;
50663 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50664 trace
50665 (p_msg => 'BEGIN of EventClass_87'
50666 ,p_level => C_LEVEL_PROCEDURE
50667 ,p_module => l_log_module);
50668 END IF;
50669
50670 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
50671 trace
50672 (p_msg => 'p_application_id = '||p_application_id||
50673 ' - p_base_ledger_id = '||p_base_ledger_id||
50674 ' - p_target_ledger_id = '||p_target_ledger_id||
50675 ' - p_language = '||p_language||
50676 ' - p_currency_code = '||p_currency_code||
50677 ' - p_sla_ledger_id = '||p_sla_ledger_id
50678 ,p_level => C_LEVEL_STATEMENT
50679 ,p_module => l_log_module);
50680 END IF;
50681 --
50682 -- initialze arrays
50683 --
50684 g_array_event.DELETE;
50685 l_rec_array_event := l_null_rec_array_event;
50686 --
50687 --------------------------------------
50688 -- 4262811 Initialze MPA Line Number
50689 --------------------------------------
50690 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
50691
50692 --
50693
50694 --
50695 OPEN header_cur;
50696 --
50697 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
50698 trace
50699 (p_msg => 'SQL - FETCH header_cur'
50700 ,p_level => C_LEVEL_STATEMENT
50701 ,p_module => l_log_module);
50702 END IF;
50703 --
50704 LOOP
50705 FETCH header_cur BULK COLLECT INTO
50706 l_array_entity_id
50707 , l_array_legal_entity_id
50708 , l_array_entity_code
50709 , l_array_transaction_num
50710 , l_array_event_id
50711 , l_array_class_code
50712 , l_array_event_type
50713 , l_array_event_number
50714 , l_array_event_date
50715 , l_array_transaction_date
50716 , l_array_reference_num_1
50717 , l_array_reference_num_2
50718 , l_array_reference_num_3
50719 , l_array_reference_num_4
50720 , l_array_reference_char_1
50721 , l_array_reference_char_2
50722 , l_array_reference_char_3
50723 , l_array_reference_char_4
50724 , l_array_reference_date_1
50725 , l_array_reference_date_2
50726 , l_array_reference_date_3
50727 , l_array_reference_date_4
50728 , l_array_event_created_by
50729 , l_array_budgetary_control_flag
50730 , l_array_source_1
50731 , l_array_source_2
50732 , l_array_source_4
50733 , l_array_source_41
50734 , l_array_source_48
50735 , l_array_source_49
50736 LIMIT l_rows;
50737 --
50738 IF (C_LEVEL_EVENT >= g_log_level) THEN
50739 trace
50740 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
50741 ,p_level => C_LEVEL_EVENT
50742 ,p_module => l_log_module);
50743 END IF;
50744 --
50745 EXIT WHEN l_array_entity_id.COUNT = 0;
50746
50747 -- initialize arrays
50748 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
50749 XLA_AE_LINES_PKG.g_rec_lines := NULL;
50750
50751 --
50752 -- Bug 4458708
50753 --
50754 XLA_AE_LINES_PKG.g_LineNumber := 0;
50755
50756
50757 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
50758 g_last_hdr_idx := l_array_event_id.LAST;
50759 --
50760 -- loop for the headers. Each iteration is for each header extract row
50761 -- fetched in header cursor
50762 --
50763 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
50764
50765 --
50766 -- set event info as cache for other routines to refer event attributes
50767 --
50768 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
50769 (p_application_id => p_application_id
50770 ,p_primary_ledger_id => p_primary_ledger_id
50771 ,p_base_ledger_id => p_base_ledger_id
50772 ,p_target_ledger_id => p_target_ledger_id
50773 ,p_entity_id => l_array_entity_id(hdr_idx)
50774 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
50775 ,p_entity_code => l_array_entity_code(hdr_idx)
50776 ,p_transaction_num => l_array_transaction_num(hdr_idx)
50777 ,p_event_id => l_array_event_id(hdr_idx)
50778 ,p_event_class_code => l_array_class_code(hdr_idx)
50779 ,p_event_type_code => l_array_event_type(hdr_idx)
50780 ,p_event_number => l_array_event_number(hdr_idx)
50781 ,p_event_date => l_array_event_date(hdr_idx)
50782 ,p_transaction_date => l_array_transaction_date(hdr_idx)
50783 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
50784 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
50785 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
50786 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
50787 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
50788 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
50789 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
50790 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
50791 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
50792 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
50793 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
50794 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
50795 ,p_event_created_by => l_array_event_created_by(hdr_idx)
50796 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
50797
50798 --
50799 -- set the status of entry to C_VALID (0)
50800 --
50801 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
50802
50803 --
50804 -- initialize a row for ae header
50805 --
50806 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
50807
50808 l_event_id := l_array_event_id(hdr_idx);
50809
50810 --
50811 -- storing the hdr_idx for event. May be used by line cursor.
50812 --
50813 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
50814
50815 --
50816 -- store sources from header extract. This can be improved to
50817 -- store only those sources from header extract that may be used in lines
50818 --
50819
50820 g_array_event(l_event_id).array_value_char('source_1') := l_array_source_1(hdr_idx);
50821 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
50822 g_array_event(l_event_id).array_value_num('source_4') := l_array_source_4(hdr_idx);
50823 g_array_event(l_event_id).array_value_num('source_41') := l_array_source_41(hdr_idx);
50824 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
50825 g_array_event(l_event_id).array_value_date('source_49') := l_array_source_49(hdr_idx);
50826
50827 --
50828 -- initilaize the status of ae headers for diffrent balance types
50829 -- the status is initialised to C_NOT_CREATED (2)
50830 --
50831 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
50832 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
50833 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
50834
50835 --
50836 -- call api to validate and store accounting attributes for header
50837 --
50838
50839 ------------------------------------------------------------
50840 -- Accrual Reversal : to get date for Standard Source (NONE)
50841 ------------------------------------------------------------
50842 l_acc_rev_gl_date_source := NULL;
50843
50847 l_rec_acct_attrs.array_date_value(2) := g_array_event(l_event_id).array_value_date('source_49');
50844 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
50845 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_48');
50846 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
50848
50849
50850 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
50851
50852 XLA_AE_HEADER_PKG.SetJeCategoryName;
50853
50854 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
50855 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
50856 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
50857 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
50858 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
50859
50860
50861 --
50862 xla_ae_header_pkg.SetHdrDescription(
50863 p_description => Description_3 (
50864 p_application_id => p_application_id
50865 , p_source_1 => g_array_event(l_event_id).array_value_char('source_1')
50866 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
50867 , p_source_4 => g_array_event(l_event_id).array_value_num('source_4')
50868 )
50869 );
50870 --
50871
50872 -- No header level analytical criteria
50873
50874 --
50875 --accounting attribute enhancement, bug 3612931
50876 --
50877 l_trx_reversal_source := SUBSTR(NULL, 1,30);
50878
50879 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
50880 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
50881
50882 xla_accounting_err_pkg.build_message
50883 (p_appli_s_name => 'XLA'
50884 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
50885 ,p_token_1 => 'ACCT_ATTR_NAME'
50886 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
50887 ,p_token_2 => 'PRODUCT_NAME'
50888 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
50889 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
50890 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
50891 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
50892
50893 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
50894 --
50895 -- following sets the accounting attributes needed to reverse
50896 -- accounting for a distributeion
50897 --
50898 xla_ae_lines_pkg.SetTrxReversalAttrs
50899 (p_event_id => l_event_id
50900 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
50901 ,p_trx_reversal_source => l_trx_reversal_source);
50902
50903 END IF;
50904
50905
50906 ----------------------------------------------------------------
50907 -- 4262811 - update the header statuses to invalid in need be
50908 ----------------------------------------------------------------
50909 --
50910 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
50911
50912
50913 -----------------------------------------------
50914 -- No accrual reversal for the event class/type
50915 -----------------------------------------------
50916 ----------------------------------------------------------------
50917
50918 --
50919 -- this ends the header loop iteration for one bulk fetch
50920 --
50921 END LOOP;
50922
50923 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
50924 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
50925
50926 --
50927 -- insert dummy rows into lines gt table that were created due to
50928 -- transaction reversals
50929 --
50930 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
50931 l_result := XLA_AE_LINES_PKG.InsertLines;
50932 END IF;
50933
50934 --
50935 -- reset the temp_line_num for each set of events fetched from header
50936 -- cursor rather than doing it for each new event in line cursor
50937 -- Bug 3939231
50938 --
50939 xla_ae_lines_pkg.g_temp_line_num := 0;
50940
50941
50942
50943 --
50944 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
50945 --
50946 --
50947 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
50948
50949 trace
50950 (p_msg => 'SQL - FETCH line_cur'
50951 ,p_level => C_LEVEL_STATEMENT
50952 ,p_module => l_log_module);
50953
50954 END IF;
50955 --
50956 --
50957 LOOP
50958 --
50959 FETCH line_cur BULK COLLECT INTO
50960 l_array_entity_id
50961 , l_array_legal_entity_id
50962 , l_array_entity_code
50963 , l_array_transaction_num
50964 , l_array_event_id
50965 , l_array_class_code
50966 , l_array_event_type
50967 , l_array_event_number
50968 , l_array_event_date
50969 , l_array_transaction_date
50970 , l_array_reference_num_1
50971 , l_array_reference_num_2
50972 , l_array_reference_num_3
50973 , l_array_reference_num_4
50974 , l_array_reference_char_1
50975 , l_array_reference_char_2
50976 , l_array_reference_char_3
50977 , l_array_reference_char_4
50978 , l_array_reference_date_1
50979 , l_array_reference_date_2
50980 , l_array_reference_date_3
50981 , l_array_reference_date_4
50982 , l_array_event_created_by
50983 , l_array_budgetary_control_flag
50984 , l_array_extract_line_num
50985 , l_array_source_3
50986 , l_array_source_7
50987 , l_array_source_8
50988 , l_array_source_9
50989 , l_array_source_10
50990 , l_array_source_11
50991 , l_array_source_13
50992 , l_array_source_15
50993 , l_array_source_17
50994 , l_array_source_19
50995 , l_array_source_21
50996 , l_array_source_22
50997 , l_array_source_23
50998 , l_array_source_24
50999 , l_array_source_25
51000 , l_array_source_26
51001 , l_array_source_27
51002 , l_array_source_28
51003 , l_array_source_29
51004 , l_array_source_30
51005 , l_array_source_31
51006 , l_array_source_32
51007 , l_array_source_33
51008 , l_array_source_34
51009 , l_array_source_35
51010 , l_array_source_36
51011 , l_array_source_37
51012 , l_array_source_38
51013 , l_array_source_39
51014 , l_array_source_40
51015 LIMIT l_rows;
51016
51017 --
51018 IF (C_LEVEL_EVENT >= g_log_level) THEN
51019 trace
51020 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
51021 ,p_level => C_LEVEL_EVENT
51022 ,p_module => l_log_module);
51023 END IF;
51024 --
51025 EXIT WHEN l_array_entity_id.count = 0;
51026
51027 XLA_AE_LINES_PKG.g_rec_lines := null;
51028
51029 --
51030 -- Bug 4458708
51031 --
51032 XLA_AE_LINES_PKG.g_LineNumber := 0;
51033 --
51034 --
51035
51036 FOR Idx IN 1..l_array_event_id.count LOOP
51037 --
51038 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
51039 --
51040 l_event_id := l_array_event_id(idx); -- 5648433
51041
51042 --
51043 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
51044 --
51045
51046 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
51047 (g_array_event(l_event_id).array_value_num('header_index'))
51048 ,'N'
51049 ) <> 'Y'
51050 THEN
51051 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
51052 trace
51053 (p_msg => 'Trancaction revesal option is not Y '
51054 ,p_level => C_LEVEL_STATEMENT
51055 ,p_module => l_log_module);
51056 END IF;
51057
51058 --
51059 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
51060 --
51061 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
51062 --
51063 -- set event info as cache for other routines to refer event attributes
51064 --
51065
51066 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
51067 l_previous_event_id := l_event_id;
51068
51069 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
51070 (p_application_id => p_application_id
51071 ,p_primary_ledger_id => p_primary_ledger_id
51072 ,p_base_ledger_id => p_base_ledger_id
51073 ,p_target_ledger_id => p_target_ledger_id
51074 ,p_entity_id => l_array_entity_id(Idx)
51075 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
51076 ,p_entity_code => l_array_entity_code(Idx)
51077 ,p_transaction_num => l_array_transaction_num(Idx)
51078 ,p_event_id => l_array_event_id(Idx)
51079 ,p_event_class_code => l_array_class_code(Idx)
51080 ,p_event_type_code => l_array_event_type(Idx)
51081 ,p_event_number => l_array_event_number(Idx)
51082 ,p_event_date => l_array_event_date(Idx)
51083 ,p_transaction_date => l_array_transaction_date(Idx)
51084 ,p_reference_num_1 => l_array_reference_num_1(Idx)
51085 ,p_reference_num_2 => l_array_reference_num_2(Idx)
51086 ,p_reference_num_3 => l_array_reference_num_3(Idx)
51087 ,p_reference_num_4 => l_array_reference_num_4(Idx)
51088 ,p_reference_char_1 => l_array_reference_char_1(Idx)
51089 ,p_reference_char_2 => l_array_reference_char_2(Idx)
51090 ,p_reference_char_3 => l_array_reference_char_3(Idx)
51091 ,p_reference_char_4 => l_array_reference_char_4(Idx)
51092 ,p_reference_date_1 => l_array_reference_date_1(Idx)
51093 ,p_reference_date_2 => l_array_reference_date_2(Idx)
51094 ,p_reference_date_3 => l_array_reference_date_3(Idx)
51095 ,p_reference_date_4 => l_array_reference_date_4(Idx)
51096 ,p_event_created_by => l_array_event_created_by(Idx)
51097 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
51098 --
51099 END IF;
51100
51101
51102
51103 --
51104 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
51105
51106 l_acct_reversal_source := SUBSTR(l_array_source_15(Idx), 1,30);
51107
51108 IF l_continue_with_lines THEN
51109 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
51110 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
51111
51112 xla_accounting_err_pkg.build_message
51113 (p_appli_s_name => 'XLA'
51114 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
51115 ,p_token_1 => 'LINE_NUMBER'
51116 ,p_value_1 => l_array_extract_line_num(Idx)
51117 ,p_token_2 => 'PRODUCT_NAME'
51118 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
51119 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
51120 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
51121 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
51122
51123 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
51124 --
51125 -- following sets the accounting attributes needed to reverse
51126 -- accounting for a distributeion
51127 --
51128
51129 --
51130 -- 5217187
51131 --
51132 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
51133 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
51134 g_array_event(l_event_id).array_value_num('header_index'));
51135 --
51136 --
51137
51138 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
51139 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_15(Idx);
51140 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
51141 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_19(Idx);
51142 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
51143 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_17(Idx);
51144 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
51145 l_rec_rev_acct_attrs.array_num_value(5) := TO_NUMBER(l_array_source_9(Idx));
51146 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
51147 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_26(Idx);
51148 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
51149 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_27(Idx);
51150 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
51151 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_28(Idx);
51152 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
51153 l_rec_rev_acct_attrs.array_num_value(9) := TO_NUMBER(l_array_source_9(Idx));
51154 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
51155 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_26(Idx);
51156 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
51157 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_27(Idx);
51158 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
51159 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_28(Idx);
51160 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
51161 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_29(Idx);
51162 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
51163 l_rec_rev_acct_attrs.array_num_value(14) := l_array_source_24(Idx);
51164 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
51165 l_rec_rev_acct_attrs.array_char_value(15) := l_array_source_22(Idx);
51166 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'UPG_CR_ENC_TYPE_ID';
51167 l_rec_rev_acct_attrs.array_num_value(16) := l_array_source_32(Idx);
51168 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'UPG_DR_ENC_TYPE_ID';
51169 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_32(Idx);
51170
51171
51172 xla_ae_lines_pkg.SetAcctReversalAttrs
51176 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
51173 (p_event_id => l_event_id
51174 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
51175 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51177 END IF;
51178
51179 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
51180 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
51181
51182 --
51183 AcctLineType_46 (
51184 p_application_id => p_application_id
51185 ,p_event_id => l_event_id
51186 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51187 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51188 ,p_actual_flag => l_actual_flag
51189 ,p_balance_type_code => l_balance_type_code
51190 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51191
51192 , p_source_9 => l_array_source_9(Idx)
51193 , p_source_13 => l_array_source_13(Idx)
51194 , p_source_15 => l_array_source_15(Idx)
51195 , p_source_17 => l_array_source_17(Idx)
51196 , p_source_19 => l_array_source_19(Idx)
51197 , p_source_21 => l_array_source_21(Idx)
51198 , p_source_22 => l_array_source_22(Idx)
51199 , p_source_23 => l_array_source_23(Idx)
51200 , p_source_24 => l_array_source_24(Idx)
51201 , p_source_25 => l_array_source_25(Idx)
51202 , p_source_26 => l_array_source_26(Idx)
51203 , p_source_27 => l_array_source_27(Idx)
51204 , p_source_28 => l_array_source_28(Idx)
51205 , p_source_29 => l_array_source_29(Idx)
51206 , p_source_32 => l_array_source_32(Idx)
51207 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51208 );
51209 If(l_balance_type_code = 'A') THEN
51210 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51211 END IF;
51212
51213 --
51214
51215
51216 --
51217 AcctLineType_47 (
51218 p_application_id => p_application_id
51219 ,p_event_id => l_event_id
51220 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51221 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51222 ,p_actual_flag => l_actual_flag
51223 ,p_balance_type_code => l_balance_type_code
51224 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51225
51226 , p_source_9 => l_array_source_9(Idx)
51227 , p_source_13 => l_array_source_13(Idx)
51228 , p_source_15 => l_array_source_15(Idx)
51229 , p_source_17 => l_array_source_17(Idx)
51230 , p_source_19 => l_array_source_19(Idx)
51231 , p_source_21 => l_array_source_21(Idx)
51232 , p_source_22 => l_array_source_22(Idx)
51233 , p_source_23 => l_array_source_23(Idx)
51234 , p_source_24 => l_array_source_24(Idx)
51235 , p_source_25 => l_array_source_25(Idx)
51236 , p_source_26 => l_array_source_26(Idx)
51237 , p_source_27 => l_array_source_27(Idx)
51238 , p_source_28 => l_array_source_28(Idx)
51239 , p_source_29 => l_array_source_29(Idx)
51240 , p_source_32 => l_array_source_32(Idx)
51241 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51242 );
51243 If(l_balance_type_code = 'A') THEN
51244 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51245 END IF;
51246
51247 --
51248
51249
51250 --
51251 AcctLineType_48 (
51252 p_application_id => p_application_id
51253 ,p_event_id => l_event_id
51254 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51255 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51256 ,p_actual_flag => l_actual_flag
51257 ,p_balance_type_code => l_balance_type_code
51258 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51259
51260 , p_source_3 => l_array_source_3(Idx)
51261 , p_source_7 => l_array_source_7(Idx)
51262 , p_source_8 => l_array_source_8(Idx)
51263 , p_source_9 => l_array_source_9(Idx)
51264 , p_source_10 => l_array_source_10(Idx)
51265 , p_source_11 => l_array_source_11(Idx)
51266 , p_source_13 => l_array_source_13(Idx)
51267 , p_source_15 => l_array_source_15(Idx)
51268 , p_source_17 => l_array_source_17(Idx)
51269 , p_source_19 => l_array_source_19(Idx)
51270 , p_source_21 => l_array_source_21(Idx)
51271 , p_source_22 => l_array_source_22(Idx)
51272 , p_source_23 => l_array_source_23(Idx)
51273 , p_source_24 => l_array_source_24(Idx)
51274 , p_source_25 => l_array_source_25(Idx)
51275 , p_source_26 => l_array_source_26(Idx)
51276 , p_source_27 => l_array_source_27(Idx)
51277 , p_source_28 => l_array_source_28(Idx)
51278 , p_source_29 => l_array_source_29(Idx)
51279 , p_source_32 => l_array_source_32(Idx)
51280 , p_source_35 => l_array_source_35(Idx)
51281 , p_source_36 => l_array_source_36(Idx)
51282 , p_source_37 => l_array_source_37(Idx)
51283 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51284 );
51285 If(l_balance_type_code = 'A') THEN
51286 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51287 END IF;
51288
51289 --
51290
51291
51292 --
51293 AcctLineType_49 (
51294 p_application_id => p_application_id
51295 ,p_event_id => l_event_id
51296 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51297 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51298 ,p_actual_flag => l_actual_flag
51299 ,p_balance_type_code => l_balance_type_code
51300 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51301
51302 , p_source_9 => l_array_source_9(Idx)
51303 , p_source_13 => l_array_source_13(Idx)
51304 , p_source_15 => l_array_source_15(Idx)
51305 , p_source_17 => l_array_source_17(Idx)
51306 , p_source_19 => l_array_source_19(Idx)
51307 , p_source_21 => l_array_source_21(Idx)
51308 , p_source_22 => l_array_source_22(Idx)
51309 , p_source_23 => l_array_source_23(Idx)
51310 , p_source_24 => l_array_source_24(Idx)
51311 , p_source_25 => l_array_source_25(Idx)
51312 , p_source_26 => l_array_source_26(Idx)
51313 , p_source_27 => l_array_source_27(Idx)
51314 , p_source_28 => l_array_source_28(Idx)
51315 , p_source_29 => l_array_source_29(Idx)
51316 , p_source_31 => l_array_source_31(Idx)
51317 , p_source_32 => l_array_source_32(Idx)
51318 , p_source_33 => l_array_source_33(Idx)
51319 , p_source_34 => l_array_source_34(Idx)
51320 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51321 );
51322 If(l_balance_type_code = 'A') THEN
51323 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51324 END IF;
51325
51326 --
51327
51328
51329 --
51330 AcctLineType_50 (
51331 p_application_id => p_application_id
51332 ,p_event_id => l_event_id
51333 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51334 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51335 ,p_actual_flag => l_actual_flag
51336 ,p_balance_type_code => l_balance_type_code
51337 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51338
51339 , p_source_9 => l_array_source_9(Idx)
51340 , p_source_13 => l_array_source_13(Idx)
51341 , p_source_15 => l_array_source_15(Idx)
51342 , p_source_17 => l_array_source_17(Idx)
51343 , p_source_19 => l_array_source_19(Idx)
51344 , p_source_21 => l_array_source_21(Idx)
51345 , p_source_22 => l_array_source_22(Idx)
51346 , p_source_23 => l_array_source_23(Idx)
51347 , p_source_24 => l_array_source_24(Idx)
51348 , p_source_25 => l_array_source_25(Idx)
51349 , p_source_26 => l_array_source_26(Idx)
51350 , p_source_27 => l_array_source_27(Idx)
51351 , p_source_28 => l_array_source_28(Idx)
51352 , p_source_29 => l_array_source_29(Idx)
51353 , p_source_31 => l_array_source_31(Idx)
51354 , p_source_32 => l_array_source_32(Idx)
51355 , p_source_33 => l_array_source_33(Idx)
51356 , p_source_34 => l_array_source_34(Idx)
51357 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51358 );
51359 If(l_balance_type_code = 'A') THEN
51360 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51361 END IF;
51362
51363 --
51364
51365
51366 --
51367 AcctLineType_51 (
51368 p_application_id => p_application_id
51369 ,p_event_id => l_event_id
51370 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51371 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51372 ,p_actual_flag => l_actual_flag
51373 ,p_balance_type_code => l_balance_type_code
51374 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51375
51376 , p_source_9 => l_array_source_9(Idx)
51377 , p_source_13 => l_array_source_13(Idx)
51378 , p_source_15 => l_array_source_15(Idx)
51379 , p_source_17 => l_array_source_17(Idx)
51380 , p_source_19 => l_array_source_19(Idx)
51381 , p_source_21 => l_array_source_21(Idx)
51382 , p_source_22 => l_array_source_22(Idx)
51383 , p_source_23 => l_array_source_23(Idx)
51384 , p_source_24 => l_array_source_24(Idx)
51385 , p_source_25 => l_array_source_25(Idx)
51386 , p_source_26 => l_array_source_26(Idx)
51387 , p_source_27 => l_array_source_27(Idx)
51388 , p_source_28 => l_array_source_28(Idx)
51389 , p_source_29 => l_array_source_29(Idx)
51390 , p_source_31 => l_array_source_31(Idx)
51391 , p_source_32 => l_array_source_32(Idx)
51392 , p_source_33 => l_array_source_33(Idx)
51393 , p_source_34 => l_array_source_34(Idx)
51394 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51395 );
51396 If(l_balance_type_code = 'A') THEN
51397 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51398 END IF;
51399
51400 --
51401
51402
51403 --
51404 AcctLineType_52 (
51405 p_application_id => p_application_id
51406 ,p_event_id => l_event_id
51407 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51408 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51409 ,p_actual_flag => l_actual_flag
51410 ,p_balance_type_code => l_balance_type_code
51411 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51412
51413 , p_source_9 => l_array_source_9(Idx)
51414 , p_source_13 => l_array_source_13(Idx)
51415 , p_source_15 => l_array_source_15(Idx)
51416 , p_source_17 => l_array_source_17(Idx)
51417 , p_source_19 => l_array_source_19(Idx)
51418 , p_source_21 => l_array_source_21(Idx)
51419 , p_source_22 => l_array_source_22(Idx)
51420 , p_source_23 => l_array_source_23(Idx)
51421 , p_source_24 => l_array_source_24(Idx)
51422 , p_source_25 => l_array_source_25(Idx)
51423 , p_source_26 => l_array_source_26(Idx)
51424 , p_source_27 => l_array_source_27(Idx)
51425 , p_source_28 => l_array_source_28(Idx)
51426 , p_source_29 => l_array_source_29(Idx)
51427 , p_source_31 => l_array_source_31(Idx)
51428 , p_source_32 => l_array_source_32(Idx)
51429 , p_source_33 => l_array_source_33(Idx)
51430 , p_source_34 => l_array_source_34(Idx)
51431 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51432 );
51433 If(l_balance_type_code = 'A') THEN
51434 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51435 END IF;
51436
51437 --
51438
51439
51440 --
51441 AcctLineType_53 (
51442 p_application_id => p_application_id
51443 ,p_event_id => l_event_id
51444 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51445 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51446 ,p_actual_flag => l_actual_flag
51447 ,p_balance_type_code => l_balance_type_code
51448 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51449
51450 , p_source_3 => l_array_source_3(Idx)
51451 , p_source_8 => l_array_source_8(Idx)
51452 , p_source_9 => l_array_source_9(Idx)
51453 , p_source_10 => l_array_source_10(Idx)
51454 , p_source_13 => l_array_source_13(Idx)
51455 , p_source_15 => l_array_source_15(Idx)
51456 , p_source_17 => l_array_source_17(Idx)
51457 , p_source_19 => l_array_source_19(Idx)
51458 , p_source_21 => l_array_source_21(Idx)
51459 , p_source_22 => l_array_source_22(Idx)
51460 , p_source_23 => l_array_source_23(Idx)
51461 , p_source_24 => l_array_source_24(Idx)
51462 , p_source_25 => l_array_source_25(Idx)
51463 , p_source_26 => l_array_source_26(Idx)
51464 , p_source_27 => l_array_source_27(Idx)
51465 , p_source_28 => l_array_source_28(Idx)
51466 , p_source_29 => l_array_source_29(Idx)
51467 , p_source_32 => l_array_source_32(Idx)
51468 , p_source_35 => l_array_source_35(Idx)
51469 , p_source_36 => l_array_source_36(Idx)
51470 , p_source_37 => l_array_source_37(Idx)
51471 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51472 );
51473 If(l_balance_type_code = 'A') THEN
51474 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51475 END IF;
51476
51477 --
51478
51479
51480 --
51481 AcctLineType_54 (
51482 p_application_id => p_application_id
51483 ,p_event_id => l_event_id
51484 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51485 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51486 ,p_actual_flag => l_actual_flag
51487 ,p_balance_type_code => l_balance_type_code
51488 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51489
51490 , p_source_3 => l_array_source_3(Idx)
51491 , p_source_9 => l_array_source_9(Idx)
51492 , p_source_10 => l_array_source_10(Idx)
51493 , p_source_11 => l_array_source_11(Idx)
51494 , p_source_13 => l_array_source_13(Idx)
51495 , p_source_15 => l_array_source_15(Idx)
51496 , p_source_17 => l_array_source_17(Idx)
51497 , p_source_19 => l_array_source_19(Idx)
51498 , p_source_21 => l_array_source_21(Idx)
51499 , p_source_22 => l_array_source_22(Idx)
51500 , p_source_23 => l_array_source_23(Idx)
51501 , p_source_24 => l_array_source_24(Idx)
51502 , p_source_25 => l_array_source_25(Idx)
51503 , p_source_26 => l_array_source_26(Idx)
51504 , p_source_27 => l_array_source_27(Idx)
51505 , p_source_28 => l_array_source_28(Idx)
51506 , p_source_29 => l_array_source_29(Idx)
51507 , p_source_32 => l_array_source_32(Idx)
51508 , p_source_35 => l_array_source_35(Idx)
51509 , p_source_36 => l_array_source_36(Idx)
51510 , p_source_37 => l_array_source_37(Idx)
51511 , p_source_38 => l_array_source_38(Idx)
51512 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51513 );
51514 If(l_balance_type_code = 'A') THEN
51515 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51516 END IF;
51517
51518 --
51519
51520
51521 --
51522 AcctLineType_55 (
51523 p_application_id => p_application_id
51524 ,p_event_id => l_event_id
51525 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51526 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51527 ,p_actual_flag => l_actual_flag
51528 ,p_balance_type_code => l_balance_type_code
51529 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51530
51531 , p_source_3 => l_array_source_3(Idx)
51532 , p_source_7 => l_array_source_7(Idx)
51533 , p_source_8 => l_array_source_8(Idx)
51534 , p_source_9 => l_array_source_9(Idx)
51535 , p_source_10 => l_array_source_10(Idx)
51536 , p_source_11 => l_array_source_11(Idx)
51537 , p_source_13 => l_array_source_13(Idx)
51538 , p_source_15 => l_array_source_15(Idx)
51539 , p_source_17 => l_array_source_17(Idx)
51540 , p_source_19 => l_array_source_19(Idx)
51541 , p_source_21 => l_array_source_21(Idx)
51542 , p_source_22 => l_array_source_22(Idx)
51543 , p_source_23 => l_array_source_23(Idx)
51544 , p_source_24 => l_array_source_24(Idx)
51545 , p_source_25 => l_array_source_25(Idx)
51546 , p_source_26 => l_array_source_26(Idx)
51547 , p_source_27 => l_array_source_27(Idx)
51548 , p_source_28 => l_array_source_28(Idx)
51549 , p_source_29 => l_array_source_29(Idx)
51550 , p_source_32 => l_array_source_32(Idx)
51551 , p_source_35 => l_array_source_35(Idx)
51552 , p_source_36 => l_array_source_36(Idx)
51553 , p_source_37 => l_array_source_37(Idx)
51554 , p_source_38 => l_array_source_38(Idx)
51555 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51556 );
51557 If(l_balance_type_code = 'A') THEN
51558 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51559 END IF;
51560
51561 --
51562
51563
51564 --
51565 AcctLineType_56 (
51566 p_application_id => p_application_id
51567 ,p_event_id => l_event_id
51568 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51569 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51570 ,p_actual_flag => l_actual_flag
51571 ,p_balance_type_code => l_balance_type_code
51572 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51573
51574 , p_source_3 => l_array_source_3(Idx)
51575 , p_source_9 => l_array_source_9(Idx)
51576 , p_source_10 => l_array_source_10(Idx)
51577 , p_source_11 => l_array_source_11(Idx)
51578 , p_source_13 => l_array_source_13(Idx)
51579 , p_source_15 => l_array_source_15(Idx)
51580 , p_source_17 => l_array_source_17(Idx)
51581 , p_source_19 => l_array_source_19(Idx)
51582 , p_source_21 => l_array_source_21(Idx)
51583 , p_source_22 => l_array_source_22(Idx)
51584 , p_source_23 => l_array_source_23(Idx)
51585 , p_source_24 => l_array_source_24(Idx)
51586 , p_source_25 => l_array_source_25(Idx)
51587 , p_source_26 => l_array_source_26(Idx)
51588 , p_source_27 => l_array_source_27(Idx)
51589 , p_source_28 => l_array_source_28(Idx)
51590 , p_source_29 => l_array_source_29(Idx)
51591 , p_source_32 => l_array_source_32(Idx)
51592 , p_source_35 => l_array_source_35(Idx)
51593 , p_source_36 => l_array_source_36(Idx)
51594 , p_source_37 => l_array_source_37(Idx)
51595 , p_source_39 => l_array_source_39(Idx)
51596 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51597 );
51598 If(l_balance_type_code = 'A') THEN
51599 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51600 END IF;
51601
51602 --
51603
51604
51605 --
51606 AcctLineType_57 (
51607 p_application_id => p_application_id
51608 ,p_event_id => l_event_id
51609 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51610 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51611 ,p_actual_flag => l_actual_flag
51612 ,p_balance_type_code => l_balance_type_code
51613 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51614
51615 , p_source_3 => l_array_source_3(Idx)
51616 , p_source_8 => l_array_source_8(Idx)
51617 , p_source_9 => l_array_source_9(Idx)
51618 , p_source_10 => l_array_source_10(Idx)
51619 , p_source_11 => l_array_source_11(Idx)
51620 , p_source_13 => l_array_source_13(Idx)
51621 , p_source_15 => l_array_source_15(Idx)
51622 , p_source_17 => l_array_source_17(Idx)
51623 , p_source_19 => l_array_source_19(Idx)
51624 , p_source_21 => l_array_source_21(Idx)
51625 , p_source_22 => l_array_source_22(Idx)
51626 , p_source_23 => l_array_source_23(Idx)
51627 , p_source_24 => l_array_source_24(Idx)
51628 , p_source_25 => l_array_source_25(Idx)
51629 , p_source_26 => l_array_source_26(Idx)
51630 , p_source_27 => l_array_source_27(Idx)
51631 , p_source_28 => l_array_source_28(Idx)
51632 , p_source_29 => l_array_source_29(Idx)
51633 , p_source_30 => l_array_source_30(Idx)
51634 , p_source_32 => l_array_source_32(Idx)
51635 , p_source_35 => l_array_source_35(Idx)
51636 , p_source_36 => l_array_source_36(Idx)
51637 , p_source_37 => l_array_source_37(Idx)
51638 , p_source_39 => l_array_source_39(Idx)
51639 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51640 );
51641 If(l_balance_type_code = 'A') THEN
51642 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51643 END IF;
51644
51645 --
51646
51647
51648 --
51649 AcctLineType_58 (
51650 p_application_id => p_application_id
51651 ,p_event_id => l_event_id
51652 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51653 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51654 ,p_actual_flag => l_actual_flag
51655 ,p_balance_type_code => l_balance_type_code
51656 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51657
51658 , p_source_3 => l_array_source_3(Idx)
51659 , p_source_7 => l_array_source_7(Idx)
51660 , p_source_8 => l_array_source_8(Idx)
51661 , p_source_9 => l_array_source_9(Idx)
51662 , p_source_10 => l_array_source_10(Idx)
51663 , p_source_11 => l_array_source_11(Idx)
51664 , p_source_13 => l_array_source_13(Idx)
51665 , p_source_15 => l_array_source_15(Idx)
51666 , p_source_17 => l_array_source_17(Idx)
51667 , p_source_19 => l_array_source_19(Idx)
51668 , p_source_21 => l_array_source_21(Idx)
51669 , p_source_22 => l_array_source_22(Idx)
51670 , p_source_23 => l_array_source_23(Idx)
51671 , p_source_24 => l_array_source_24(Idx)
51672 , p_source_25 => l_array_source_25(Idx)
51673 , p_source_26 => l_array_source_26(Idx)
51674 , p_source_27 => l_array_source_27(Idx)
51675 , p_source_28 => l_array_source_28(Idx)
51676 , p_source_29 => l_array_source_29(Idx)
51677 , p_source_32 => l_array_source_32(Idx)
51678 , p_source_35 => l_array_source_35(Idx)
51679 , p_source_36 => l_array_source_36(Idx)
51680 , p_source_37 => l_array_source_37(Idx)
51681 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51682 );
51683 If(l_balance_type_code = 'A') THEN
51684 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51685 END IF;
51686
51687 --
51688
51689
51690 --
51691 AcctLineType_59 (
51692 p_application_id => p_application_id
51693 ,p_event_id => l_event_id
51694 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51695 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51696 ,p_actual_flag => l_actual_flag
51697 ,p_balance_type_code => l_balance_type_code
51698 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51699
51700 , p_source_3 => l_array_source_3(Idx)
51701 , p_source_8 => l_array_source_8(Idx)
51702 , p_source_9 => l_array_source_9(Idx)
51703 , p_source_10 => l_array_source_10(Idx)
51704 , p_source_13 => l_array_source_13(Idx)
51705 , p_source_15 => l_array_source_15(Idx)
51706 , p_source_17 => l_array_source_17(Idx)
51707 , p_source_19 => l_array_source_19(Idx)
51708 , p_source_21 => l_array_source_21(Idx)
51709 , p_source_22 => l_array_source_22(Idx)
51710 , p_source_23 => l_array_source_23(Idx)
51711 , p_source_24 => l_array_source_24(Idx)
51712 , p_source_25 => l_array_source_25(Idx)
51713 , p_source_26 => l_array_source_26(Idx)
51714 , p_source_27 => l_array_source_27(Idx)
51715 , p_source_28 => l_array_source_28(Idx)
51716 , p_source_29 => l_array_source_29(Idx)
51717 , p_source_32 => l_array_source_32(Idx)
51718 , p_source_35 => l_array_source_35(Idx)
51719 , p_source_36 => l_array_source_36(Idx)
51720 , p_source_37 => l_array_source_37(Idx)
51721 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51722 );
51723 If(l_balance_type_code = 'A') THEN
51724 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51725 END IF;
51726
51727 --
51728
51729
51730 --
51731 AcctLineType_60 (
51732 p_application_id => p_application_id
51733 ,p_event_id => l_event_id
51734 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51735 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51736 ,p_actual_flag => l_actual_flag
51737 ,p_balance_type_code => l_balance_type_code
51738 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51739
51740 , p_source_3 => l_array_source_3(Idx)
51741 , p_source_9 => l_array_source_9(Idx)
51742 , p_source_10 => l_array_source_10(Idx)
51743 , p_source_13 => l_array_source_13(Idx)
51744 , p_source_15 => l_array_source_15(Idx)
51745 , p_source_17 => l_array_source_17(Idx)
51746 , p_source_19 => l_array_source_19(Idx)
51747 , p_source_21 => l_array_source_21(Idx)
51748 , p_source_22 => l_array_source_22(Idx)
51749 , p_source_23 => l_array_source_23(Idx)
51750 , p_source_24 => l_array_source_24(Idx)
51751 , p_source_25 => l_array_source_25(Idx)
51752 , p_source_26 => l_array_source_26(Idx)
51753 , p_source_27 => l_array_source_27(Idx)
51754 , p_source_28 => l_array_source_28(Idx)
51755 , p_source_29 => l_array_source_29(Idx)
51756 , p_source_32 => l_array_source_32(Idx)
51757 , p_source_35 => l_array_source_35(Idx)
51758 , p_source_36 => l_array_source_36(Idx)
51759 , p_source_37 => l_array_source_37(Idx)
51760 , p_source_40 => l_array_source_40(Idx)
51761 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51762 );
51763 If(l_balance_type_code = 'A') THEN
51764 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51765 END IF;
51766
51767 --
51768
51769
51770 --
51771 AcctLineType_61 (
51772 p_application_id => p_application_id
51773 ,p_event_id => l_event_id
51774 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51775 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51776 ,p_actual_flag => l_actual_flag
51777 ,p_balance_type_code => l_balance_type_code
51778 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51779
51780 , p_source_3 => l_array_source_3(Idx)
51781 , p_source_7 => l_array_source_7(Idx)
51782 , p_source_8 => l_array_source_8(Idx)
51783 , p_source_9 => l_array_source_9(Idx)
51784 , p_source_10 => l_array_source_10(Idx)
51785 , p_source_13 => l_array_source_13(Idx)
51786 , p_source_15 => l_array_source_15(Idx)
51787 , p_source_17 => l_array_source_17(Idx)
51788 , p_source_19 => l_array_source_19(Idx)
51789 , p_source_21 => l_array_source_21(Idx)
51790 , p_source_22 => l_array_source_22(Idx)
51791 , p_source_23 => l_array_source_23(Idx)
51792 , p_source_24 => l_array_source_24(Idx)
51793 , p_source_25 => l_array_source_25(Idx)
51794 , p_source_26 => l_array_source_26(Idx)
51795 , p_source_27 => l_array_source_27(Idx)
51796 , p_source_28 => l_array_source_28(Idx)
51797 , p_source_29 => l_array_source_29(Idx)
51798 , p_source_32 => l_array_source_32(Idx)
51799 , p_source_35 => l_array_source_35(Idx)
51800 , p_source_36 => l_array_source_36(Idx)
51801 , p_source_37 => l_array_source_37(Idx)
51802 , p_source_40 => l_array_source_40(Idx)
51803 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51804 );
51805 If(l_balance_type_code = 'A') THEN
51806 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51807 END IF;
51808
51809 --
51810
51811
51812 --
51813 AcctLineType_62 (
51814 p_application_id => p_application_id
51815 ,p_event_id => l_event_id
51816 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51817 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51818 ,p_actual_flag => l_actual_flag
51819 ,p_balance_type_code => l_balance_type_code
51820 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51821
51822 , p_source_9 => l_array_source_9(Idx)
51823 , p_source_13 => l_array_source_13(Idx)
51824 , p_source_15 => l_array_source_15(Idx)
51825 , p_source_17 => l_array_source_17(Idx)
51826 , p_source_19 => l_array_source_19(Idx)
51827 , p_source_21 => l_array_source_21(Idx)
51828 , p_source_22 => l_array_source_22(Idx)
51829 , p_source_23 => l_array_source_23(Idx)
51830 , p_source_24 => l_array_source_24(Idx)
51831 , p_source_25 => l_array_source_25(Idx)
51832 , p_source_26 => l_array_source_26(Idx)
51833 , p_source_27 => l_array_source_27(Idx)
51834 , p_source_28 => l_array_source_28(Idx)
51835 , p_source_29 => l_array_source_29(Idx)
51836 , p_source_31 => l_array_source_31(Idx)
51837 , p_source_32 => l_array_source_32(Idx)
51838 , p_source_34 => l_array_source_34(Idx)
51839 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51840 );
51841 If(l_balance_type_code = 'A') THEN
51842 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51843 END IF;
51844
51845 --
51846
51847
51848 --
51849 AcctLineType_63 (
51850 p_application_id => p_application_id
51851 ,p_event_id => l_event_id
51852 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51853 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51854 ,p_actual_flag => l_actual_flag
51855 ,p_balance_type_code => l_balance_type_code
51856 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51857
51858 , p_source_9 => l_array_source_9(Idx)
51859 , p_source_13 => l_array_source_13(Idx)
51860 , p_source_15 => l_array_source_15(Idx)
51864 , p_source_22 => l_array_source_22(Idx)
51861 , p_source_17 => l_array_source_17(Idx)
51862 , p_source_19 => l_array_source_19(Idx)
51863 , p_source_21 => l_array_source_21(Idx)
51865 , p_source_23 => l_array_source_23(Idx)
51866 , p_source_24 => l_array_source_24(Idx)
51867 , p_source_25 => l_array_source_25(Idx)
51868 , p_source_26 => l_array_source_26(Idx)
51869 , p_source_27 => l_array_source_27(Idx)
51870 , p_source_28 => l_array_source_28(Idx)
51871 , p_source_29 => l_array_source_29(Idx)
51872 , p_source_31 => l_array_source_31(Idx)
51873 , p_source_32 => l_array_source_32(Idx)
51874 , p_source_33 => l_array_source_33(Idx)
51875 , p_source_34 => l_array_source_34(Idx)
51876 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51877 );
51878 If(l_balance_type_code = 'A') THEN
51879 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51880 END IF;
51881
51882 --
51883
51884
51885 --
51886 AcctLineType_64 (
51887 p_application_id => p_application_id
51888 ,p_event_id => l_event_id
51889 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51890 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51891 ,p_actual_flag => l_actual_flag
51892 ,p_balance_type_code => l_balance_type_code
51893 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51894
51895 , p_source_9 => l_array_source_9(Idx)
51896 , p_source_13 => l_array_source_13(Idx)
51897 , p_source_15 => l_array_source_15(Idx)
51898 , p_source_17 => l_array_source_17(Idx)
51899 , p_source_19 => l_array_source_19(Idx)
51900 , p_source_21 => l_array_source_21(Idx)
51901 , p_source_22 => l_array_source_22(Idx)
51902 , p_source_23 => l_array_source_23(Idx)
51903 , p_source_24 => l_array_source_24(Idx)
51904 , p_source_25 => l_array_source_25(Idx)
51905 , p_source_26 => l_array_source_26(Idx)
51906 , p_source_27 => l_array_source_27(Idx)
51907 , p_source_28 => l_array_source_28(Idx)
51908 , p_source_29 => l_array_source_29(Idx)
51909 , p_source_31 => l_array_source_31(Idx)
51910 , p_source_32 => l_array_source_32(Idx)
51911 , p_source_33 => l_array_source_33(Idx)
51912 , p_source_34 => l_array_source_34(Idx)
51913 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51914 );
51915 If(l_balance_type_code = 'A') THEN
51916 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51917 END IF;
51918
51919 --
51920
51921
51922 --
51923 AcctLineType_65 (
51924 p_application_id => p_application_id
51925 ,p_event_id => l_event_id
51926 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51927 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51928 ,p_actual_flag => l_actual_flag
51929 ,p_balance_type_code => l_balance_type_code
51930 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51931
51932 , p_source_9 => l_array_source_9(Idx)
51933 , p_source_13 => l_array_source_13(Idx)
51934 , p_source_15 => l_array_source_15(Idx)
51935 , p_source_17 => l_array_source_17(Idx)
51936 , p_source_19 => l_array_source_19(Idx)
51937 , p_source_21 => l_array_source_21(Idx)
51938 , p_source_22 => l_array_source_22(Idx)
51939 , p_source_23 => l_array_source_23(Idx)
51940 , p_source_24 => l_array_source_24(Idx)
51941 , p_source_25 => l_array_source_25(Idx)
51942 , p_source_26 => l_array_source_26(Idx)
51943 , p_source_27 => l_array_source_27(Idx)
51944 , p_source_28 => l_array_source_28(Idx)
51945 , p_source_29 => l_array_source_29(Idx)
51946 , p_source_31 => l_array_source_31(Idx)
51947 , p_source_32 => l_array_source_32(Idx)
51948 , p_source_33 => l_array_source_33(Idx)
51949 , p_source_34 => l_array_source_34(Idx)
51950 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51951 );
51952 If(l_balance_type_code = 'A') THEN
51953 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51954 END IF;
51955
51956 --
51957
51958
51959 --
51960 AcctLineType_66 (
51961 p_application_id => p_application_id
51962 ,p_event_id => l_event_id
51963 ,p_calculate_acctd_flag => l_calculate_acctd_flag
51964 ,p_calculate_g_l_flag => l_calculate_g_l_flag
51965 ,p_actual_flag => l_actual_flag
51966 ,p_balance_type_code => l_balance_type_code
51967 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
51968
51969 , p_source_3 => l_array_source_3(Idx)
51970 , p_source_7 => l_array_source_7(Idx)
51971 , p_source_8 => l_array_source_8(Idx)
51972 , p_source_9 => l_array_source_9(Idx)
51973 , p_source_13 => l_array_source_13(Idx)
51974 , p_source_15 => l_array_source_15(Idx)
51975 , p_source_17 => l_array_source_17(Idx)
51976 , p_source_19 => l_array_source_19(Idx)
51977 , p_source_21 => l_array_source_21(Idx)
51978 , p_source_22 => l_array_source_22(Idx)
51979 , p_source_23 => l_array_source_23(Idx)
51980 , p_source_24 => l_array_source_24(Idx)
51981 , p_source_25 => l_array_source_25(Idx)
51982 , p_source_26 => l_array_source_26(Idx)
51983 , p_source_27 => l_array_source_27(Idx)
51984 , p_source_28 => l_array_source_28(Idx)
51985 , p_source_29 => l_array_source_29(Idx)
51986 , p_source_31 => l_array_source_31(Idx)
51987 , p_source_32 => l_array_source_32(Idx)
51988 , p_source_33 => l_array_source_33(Idx)
51989 , p_source_34 => l_array_source_34(Idx)
51990 , p_source_35 => l_array_source_35(Idx)
51991 , p_source_36 => l_array_source_36(Idx)
51992 , p_source_37 => l_array_source_37(Idx)
51993 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
51994 );
51995 If(l_balance_type_code = 'A') THEN
51996 l_actual_gain_loss_ref := l_gain_or_loss_ref;
51997 END IF;
51998
51999 --
52000
52001
52002 --
52003 AcctLineType_67 (
52004 p_application_id => p_application_id
52005 ,p_event_id => l_event_id
52006 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52007 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52008 ,p_actual_flag => l_actual_flag
52009 ,p_balance_type_code => l_balance_type_code
52010 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52011
52012 , p_source_3 => l_array_source_3(Idx)
52013 , p_source_9 => l_array_source_9(Idx)
52014 , p_source_13 => l_array_source_13(Idx)
52015 , p_source_15 => l_array_source_15(Idx)
52016 , p_source_17 => l_array_source_17(Idx)
52017 , p_source_19 => l_array_source_19(Idx)
52018 , p_source_21 => l_array_source_21(Idx)
52019 , p_source_22 => l_array_source_22(Idx)
52020 , p_source_23 => l_array_source_23(Idx)
52021 , p_source_24 => l_array_source_24(Idx)
52022 , p_source_25 => l_array_source_25(Idx)
52023 , p_source_26 => l_array_source_26(Idx)
52024 , p_source_27 => l_array_source_27(Idx)
52025 , p_source_28 => l_array_source_28(Idx)
52026 , p_source_29 => l_array_source_29(Idx)
52027 , p_source_31 => l_array_source_31(Idx)
52028 , p_source_32 => l_array_source_32(Idx)
52029 , p_source_33 => l_array_source_33(Idx)
52030 , p_source_34 => l_array_source_34(Idx)
52031 , p_source_35 => l_array_source_35(Idx)
52032 , p_source_36 => l_array_source_36(Idx)
52033 , p_source_37 => l_array_source_37(Idx)
52034 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
52035 );
52036 If(l_balance_type_code = 'A') THEN
52037 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52038 END IF;
52039
52040 --
52041
52042
52043 --
52044 AcctLineType_68 (
52045 p_application_id => p_application_id
52046 ,p_event_id => l_event_id
52047 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52048 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52049 ,p_actual_flag => l_actual_flag
52050 ,p_balance_type_code => l_balance_type_code
52051 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52052
52053 , p_source_9 => l_array_source_9(Idx)
52054 , p_source_13 => l_array_source_13(Idx)
52055 , p_source_15 => l_array_source_15(Idx)
52056 , p_source_17 => l_array_source_17(Idx)
52057 , p_source_19 => l_array_source_19(Idx)
52058 , p_source_21 => l_array_source_21(Idx)
52059 , p_source_22 => l_array_source_22(Idx)
52060 , p_source_23 => l_array_source_23(Idx)
52061 , p_source_24 => l_array_source_24(Idx)
52062 , p_source_25 => l_array_source_25(Idx)
52063 , p_source_26 => l_array_source_26(Idx)
52064 , p_source_27 => l_array_source_27(Idx)
52065 , p_source_28 => l_array_source_28(Idx)
52066 , p_source_29 => l_array_source_29(Idx)
52067 , p_source_31 => l_array_source_31(Idx)
52068 , p_source_32 => l_array_source_32(Idx)
52069 , p_source_33 => l_array_source_33(Idx)
52070 , p_source_34 => l_array_source_34(Idx)
52071 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
52072 );
52073 If(l_balance_type_code = 'A') THEN
52074 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52075 END IF;
52076
52077 --
52078
52079
52080 --
52081 AcctLineType_69 (
52082 p_application_id => p_application_id
52083 ,p_event_id => l_event_id
52084 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52085 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52086 ,p_actual_flag => l_actual_flag
52087 ,p_balance_type_code => l_balance_type_code
52088 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52089
52090 , p_source_9 => l_array_source_9(Idx)
52091 , p_source_13 => l_array_source_13(Idx)
52092 , p_source_15 => l_array_source_15(Idx)
52093 , p_source_17 => l_array_source_17(Idx)
52094 , p_source_19 => l_array_source_19(Idx)
52095 , p_source_21 => l_array_source_21(Idx)
52096 , p_source_22 => l_array_source_22(Idx)
52097 , p_source_23 => l_array_source_23(Idx)
52098 , p_source_24 => l_array_source_24(Idx)
52099 , p_source_25 => l_array_source_25(Idx)
52100 , p_source_26 => l_array_source_26(Idx)
52101 , p_source_27 => l_array_source_27(Idx)
52102 , p_source_28 => l_array_source_28(Idx)
52103 , p_source_29 => l_array_source_29(Idx)
52104 , p_source_31 => l_array_source_31(Idx)
52105 , p_source_32 => l_array_source_32(Idx)
52106 , p_source_33 => l_array_source_33(Idx)
52107 , p_source_34 => l_array_source_34(Idx)
52108 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
52109 );
52110 If(l_balance_type_code = 'A') THEN
52111 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52112 END IF;
52113
52114 --
52115
52116
52117 --
52118 AcctLineType_70 (
52119 p_application_id => p_application_id
52120 ,p_event_id => l_event_id
52121 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52122 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52123 ,p_actual_flag => l_actual_flag
52124 ,p_balance_type_code => l_balance_type_code
52125 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52126
52127 , p_source_9 => l_array_source_9(Idx)
52128 , p_source_13 => l_array_source_13(Idx)
52129 , p_source_15 => l_array_source_15(Idx)
52130 , p_source_17 => l_array_source_17(Idx)
52131 , p_source_19 => l_array_source_19(Idx)
52132 , p_source_21 => l_array_source_21(Idx)
52133 , p_source_22 => l_array_source_22(Idx)
52134 , p_source_23 => l_array_source_23(Idx)
52135 , p_source_24 => l_array_source_24(Idx)
52136 , p_source_25 => l_array_source_25(Idx)
52137 , p_source_26 => l_array_source_26(Idx)
52138 , p_source_27 => l_array_source_27(Idx)
52139 , p_source_28 => l_array_source_28(Idx)
52140 , p_source_29 => l_array_source_29(Idx)
52141 , p_source_31 => l_array_source_31(Idx)
52142 , p_source_32 => l_array_source_32(Idx)
52143 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
52144 );
52145 If(l_balance_type_code = 'A') THEN
52146 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52147 END IF;
52148
52149 --
52150
52151
52152 --
52153 AcctLineType_71 (
52154 p_application_id => p_application_id
52155 ,p_event_id => l_event_id
52156 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52157 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52158 ,p_actual_flag => l_actual_flag
52159 ,p_balance_type_code => l_balance_type_code
52160 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52161
52162 , p_source_9 => l_array_source_9(Idx)
52163 , p_source_13 => l_array_source_13(Idx)
52164 , p_source_15 => l_array_source_15(Idx)
52165 , p_source_17 => l_array_source_17(Idx)
52166 , p_source_19 => l_array_source_19(Idx)
52167 , p_source_21 => l_array_source_21(Idx)
52168 , p_source_22 => l_array_source_22(Idx)
52169 , p_source_23 => l_array_source_23(Idx)
52170 , p_source_24 => l_array_source_24(Idx)
52171 , p_source_25 => l_array_source_25(Idx)
52172 , p_source_26 => l_array_source_26(Idx)
52173 , p_source_27 => l_array_source_27(Idx)
52174 , p_source_28 => l_array_source_28(Idx)
52175 , p_source_29 => l_array_source_29(Idx)
52176 , p_source_31 => l_array_source_31(Idx)
52177 , p_source_32 => l_array_source_32(Idx)
52178 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
52179 );
52180 If(l_balance_type_code = 'A') THEN
52181 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52182 END IF;
52183
52184 --
52185
52186
52187 --
52188 AcctLineType_72 (
52189 p_application_id => p_application_id
52190 ,p_event_id => l_event_id
52191 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52192 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52193 ,p_actual_flag => l_actual_flag
52194 ,p_balance_type_code => l_balance_type_code
52195 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52196
52197 , p_source_3 => l_array_source_3(Idx)
52198 , p_source_9 => l_array_source_9(Idx)
52199 , p_source_13 => l_array_source_13(Idx)
52200 , p_source_15 => l_array_source_15(Idx)
52201 , p_source_17 => l_array_source_17(Idx)
52202 , p_source_19 => l_array_source_19(Idx)
52203 , p_source_21 => l_array_source_21(Idx)
52204 , p_source_22 => l_array_source_22(Idx)
52205 , p_source_23 => l_array_source_23(Idx)
52206 , p_source_24 => l_array_source_24(Idx)
52207 , p_source_25 => l_array_source_25(Idx)
52208 , p_source_26 => l_array_source_26(Idx)
52209 , p_source_27 => l_array_source_27(Idx)
52210 , p_source_28 => l_array_source_28(Idx)
52211 , p_source_29 => l_array_source_29(Idx)
52212 , p_source_31 => l_array_source_31(Idx)
52213 , p_source_32 => l_array_source_32(Idx)
52214 , p_source_35 => l_array_source_35(Idx)
52215 , p_source_36 => l_array_source_36(Idx)
52216 , p_source_37 => l_array_source_37(Idx)
52217 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
52218 );
52219 If(l_balance_type_code = 'A') THEN
52220 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52221 END IF;
52222
52223 --
52224
52225
52226 --
52227 AcctLineType_73 (
52228 p_application_id => p_application_id
52229 ,p_event_id => l_event_id
52230 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52231 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52232 ,p_actual_flag => l_actual_flag
52233 ,p_balance_type_code => l_balance_type_code
52234 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52235
52236 , p_source_3 => l_array_source_3(Idx)
52237 , p_source_7 => l_array_source_7(Idx)
52238 , p_source_8 => l_array_source_8(Idx)
52239 , p_source_9 => l_array_source_9(Idx)
52240 , p_source_13 => l_array_source_13(Idx)
52241 , p_source_15 => l_array_source_15(Idx)
52242 , p_source_17 => l_array_source_17(Idx)
52243 , p_source_19 => l_array_source_19(Idx)
52244 , p_source_21 => l_array_source_21(Idx)
52245 , p_source_22 => l_array_source_22(Idx)
52246 , p_source_23 => l_array_source_23(Idx)
52247 , p_source_24 => l_array_source_24(Idx)
52248 , p_source_25 => l_array_source_25(Idx)
52249 , p_source_26 => l_array_source_26(Idx)
52250 , p_source_27 => l_array_source_27(Idx)
52251 , p_source_28 => l_array_source_28(Idx)
52252 , p_source_29 => l_array_source_29(Idx)
52253 , p_source_31 => l_array_source_31(Idx)
52254 , p_source_32 => l_array_source_32(Idx)
52255 , p_source_35 => l_array_source_35(Idx)
52256 , p_source_36 => l_array_source_36(Idx)
52257 , p_source_37 => l_array_source_37(Idx)
52258 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
52259 );
52260 If(l_balance_type_code = 'A') THEN
52261 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52262 END IF;
52263
52264 --
52265
52266
52267 --
52268 AcctLineType_74 (
52269 p_application_id => p_application_id
52270 ,p_event_id => l_event_id
52271 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52272 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52273 ,p_actual_flag => l_actual_flag
52274 ,p_balance_type_code => l_balance_type_code
52275 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52276
52277 , p_source_7 => l_array_source_7(Idx)
52278 , p_source_8 => l_array_source_8(Idx)
52279 , p_source_9 => l_array_source_9(Idx)
52280 , p_source_13 => l_array_source_13(Idx)
52281 , p_source_15 => l_array_source_15(Idx)
52282 , p_source_17 => l_array_source_17(Idx)
52283 , p_source_19 => l_array_source_19(Idx)
52284 , p_source_21 => l_array_source_21(Idx)
52285 , p_source_22 => l_array_source_22(Idx)
52286 , p_source_23 => l_array_source_23(Idx)
52287 , p_source_24 => l_array_source_24(Idx)
52288 , p_source_25 => l_array_source_25(Idx)
52289 , p_source_26 => l_array_source_26(Idx)
52290 , p_source_27 => l_array_source_27(Idx)
52291 , p_source_28 => l_array_source_28(Idx)
52292 , p_source_29 => l_array_source_29(Idx)
52293 , p_source_31 => l_array_source_31(Idx)
52294 , p_source_32 => l_array_source_32(Idx)
52295 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
52296 );
52297 If(l_balance_type_code = 'A') THEN
52298 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52299 END IF;
52300
52301 --
52302
52303
52304 --
52305 AcctLineType_75 (
52306 p_application_id => p_application_id
52307 ,p_event_id => l_event_id
52308 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52309 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52310 ,p_actual_flag => l_actual_flag
52311 ,p_balance_type_code => l_balance_type_code
52312 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52313
52314 , p_source_9 => l_array_source_9(Idx)
52315 , p_source_13 => l_array_source_13(Idx)
52316 , p_source_15 => l_array_source_15(Idx)
52317 , p_source_17 => l_array_source_17(Idx)
52318 , p_source_19 => l_array_source_19(Idx)
52319 , p_source_21 => l_array_source_21(Idx)
52320 , p_source_22 => l_array_source_22(Idx)
52321 , p_source_23 => l_array_source_23(Idx)
52322 , p_source_24 => l_array_source_24(Idx)
52323 , p_source_25 => l_array_source_25(Idx)
52324 , p_source_26 => l_array_source_26(Idx)
52325 , p_source_27 => l_array_source_27(Idx)
52326 , p_source_28 => l_array_source_28(Idx)
52327 , p_source_29 => l_array_source_29(Idx)
52328 , p_source_31 => l_array_source_31(Idx)
52329 , p_source_32 => l_array_source_32(Idx)
52330 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
52331 );
52332 If(l_balance_type_code = 'A') THEN
52333 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52334 END IF;
52335
52336 --
52337
52338 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
52339 -- or secondary ledger that has different currency with primary
52340 -- or alc that is calculated by sla
52341 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
52342 (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'))
52343
52344 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
52345 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
52346 AND (l_actual_flag = 'A')) THEN
52347 XLA_AE_LINES_PKG.CreateGainOrLossLines(
52348 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
52349 ,p_application_id => p_application_id
52350 ,p_amb_context_code => 'DEFAULT'
52351 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
52352 ,p_event_class_code => C_EVENT_CLASS_CODE
52353 ,p_event_type_code => C_EVENT_TYPE_CODE
52354
52355 ,p_gain_ccid => -1
52356 ,p_loss_ccid => -1
52357
52358 ,p_actual_flag => l_actual_flag
52359 ,p_enc_flag => null
52360 ,p_actual_g_l_ref => l_actual_gain_loss_ref
52361 ,p_enc_g_l_ref => null
52362 );
52363 END IF;
52364 END IF;
52365 END IF;
52366
52367 ELSE
52368 --
52369 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
52370 --
52371 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
52372 trace
52373 (p_msg => 'Trancaction revesal option is Y'
52374 ,p_level => C_LEVEL_STATEMENT
52375 ,p_module => l_log_module);
52376 END IF;
52377 END IF;
52378
52379 END LOOP;
52380 l_result := XLA_AE_LINES_PKG.InsertLines ;
52381 end loop;
52382 close line_cur;
52383
52384
52385 --
52386 -- insert headers into xla_ae_headers_gt table
52387 --
52388 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
52389
52390 -- insert into errors table here.
52391
52392 END LOOP;
52393
52394 --
52395 -- 4865292
52396 --
52397 -- Compare g_hdr_extract_count with event count in
52398 -- CreateHeadersAndLines.
52399 --
52400 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
52401
52402 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
52403 trace (p_msg => '# rows extracted from header extract objects '
52404 || ' (running total): '
52405 || g_hdr_extract_count
52406 ,p_level => C_LEVEL_STATEMENT
52407 ,p_module => l_log_module);
52408 END IF;
52409
52410 CLOSE header_cur;
52411 --
52415 trace
52412
52413 --
52414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52416 (p_msg => 'END of EventClass_87'
52417 ,p_level => C_LEVEL_PROCEDURE
52418 ,p_module => l_log_module);
52419 END IF;
52420 --
52421 RETURN l_result;
52422 EXCEPTION
52423 WHEN xla_exceptions_pkg.application_exception THEN
52424
52425 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
52426
52427
52428 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
52429
52430 RAISE;
52431 WHEN OTHERS THEN
52432 xla_exceptions_pkg.raise_message
52433 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.EventClass_87');
52434 END EventClass_87;
52435 --
52436
52437 ---------------------------------------
52438 --
52439 -- PRIVATE PROCEDURE
52440 -- insert_sources_88
52441 --
52442 ----------------------------------------
52443 --
52444 PROCEDURE insert_sources_88(
52445 p_target_ledger_id IN NUMBER
52446 , p_language IN VARCHAR2
52447 , p_sla_ledger_id IN NUMBER
52448 , p_pad_start_date IN DATE
52449 , p_pad_end_date IN DATE
52450 )
52451 IS
52452
52453 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REQUISITION_ALL';
52454 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REQUISITION';
52455 p_apps_owner VARCHAR2(30);
52456 l_log_module VARCHAR2(240);
52457 BEGIN
52458 IF g_log_enabled THEN
52459 l_log_module := C_DEFAULT_MODULE||'.insert_sources_88';
52460 END IF;
52461 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52462
52463 trace
52464 (p_msg => 'BEGIN of insert_sources_88'
52465 ,p_level => C_LEVEL_PROCEDURE
52466 ,p_module => l_log_module);
52467
52468 END IF;
52469
52470 -- select APPS owner
52471 SELECT oracle_username
52472 INTO p_apps_owner
52473 FROM fnd_oracle_userid
52474 WHERE read_only_flag = 'U'
52475 ;
52476
52477 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
52478 trace
52479 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
52480 ' - p_language = '||p_language||
52481 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
52482 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
52483 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
52484 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
52485 ,p_level => C_LEVEL_STATEMENT
52486 ,p_module => l_log_module);
52487 END IF;
52488
52489
52490 --
52491 INSERT INTO xla_diag_sources --hdr2
52492 (
52493 event_id
52494 , ledger_id
52495 , sla_ledger_id
52496 , description_language
52497 , object_name
52498 , object_type_code
52499 , line_number
52500 , source_application_id
52501 , source_type_code
52502 , source_code
52503 , source_value
52504 , source_meaning
52505 , created_by
52506 , creation_date
52507 , last_update_date
52508 , last_updated_by
52509 , last_update_login
52510 , program_update_date
52511 , program_application_id
52512 , program_id
52513 , request_id
52514 )
52515 SELECT
52516 event_id
52517 , p_target_ledger_id
52518 , p_sla_ledger_id
52519 , p_language
52520 , object_name
52521 , object_type_code
52522 , line_number
52523 , source_application_id
52524 , source_type_code
52525 , source_code
52526 , SUBSTR(source_value ,1,1996)
52527 , SUBSTR(source_meaning ,1,200)
52528 , xla_environment_pkg.g_Usr_Id
52529 , TRUNC(SYSDATE)
52530 , TRUNC(SYSDATE)
52531 , xla_environment_pkg.g_Usr_Id
52532 , xla_environment_pkg.g_Login_Id
52533 , TRUNC(SYSDATE)
52534 , xla_environment_pkg.g_Prog_Appl_Id
52535 , xla_environment_pkg.g_Prog_Id
52536 , xla_environment_pkg.g_Req_Id
52537 FROM (
52538 SELECT xet.event_id event_id
52539 , 0 line_number
52540 , CASE r
52541 WHEN 1 THEN 'PO_REQ_EXTRACT_HEADER_V'
52542 WHEN 2 THEN 'PO_REQ_EXTRACT_HEADER_V'
52543 WHEN 3 THEN 'PO_REQ_EXTRACT_HEADER_V'
52544 WHEN 4 THEN 'PO_REQ_EXTRACT_HEADER_V'
52545 WHEN 5 THEN 'PO_REQ_EXTRACT_HEADER_V'
52546
52547 ELSE null
52548 END object_name
52549 , CASE r
52550 WHEN 1 THEN 'HEADER'
52551 WHEN 2 THEN 'HEADER'
52552 WHEN 3 THEN 'HEADER'
52553 WHEN 4 THEN 'HEADER'
52554 WHEN 5 THEN 'HEADER'
52555
52556 ELSE null
52557 END object_type_code
52558 , CASE r
52559 WHEN 1 THEN '201'
52560 WHEN 2 THEN '201'
52561 WHEN 3 THEN '201'
52562 WHEN 4 THEN '201'
52563 WHEN 5 THEN '201'
52564
52565 ELSE null
52566 END source_application_id
52567 , 'S' source_type_code
52571 WHEN 3 THEN 'REQ_ID'
52568 , CASE r
52569 WHEN 1 THEN 'DOCUMENT_TYPE'
52570 WHEN 2 THEN 'REQ_NUMBER'
52572 WHEN 4 THEN 'ENCUMBRANCE_TYPE_ID'
52573 WHEN 5 THEN 'GL_DATE'
52574
52575 ELSE null
52576 END source_code
52577 , CASE r
52578 WHEN 1 THEN TO_CHAR(h3.DOCUMENT_TYPE)
52579 WHEN 2 THEN TO_CHAR(h3.REQ_NUMBER)
52580 WHEN 3 THEN TO_CHAR(h3.REQ_ID)
52581 WHEN 4 THEN TO_CHAR(h3.ENCUMBRANCE_TYPE_ID)
52582 WHEN 5 THEN TO_CHAR(h3.GL_DATE)
52583
52584 ELSE null
52585 END source_value
52586 , null source_meaning
52587 FROM xla_events_gt xet
52588 , PO_REQ_EXTRACT_HEADER_V h3
52589 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
52590 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
52591 AND xet.event_class_code = C_EVENT_CLASS_CODE
52592 AND h3.event_id = xet.event_id
52593
52594 )
52595 ;
52596 --
52597 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
52598
52599 trace
52600 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
52601 ,p_level => C_LEVEL_STATEMENT
52602 ,p_module => l_log_module);
52603
52604 END IF;
52605 --
52606
52607
52608
52609 --
52610 INSERT INTO xla_diag_sources --line2
52611 (
52612 event_id
52613 , ledger_id
52614 , sla_ledger_id
52615 , description_language
52616 , object_name
52617 , object_type_code
52618 , line_number
52619 , source_application_id
52620 , source_type_code
52621 , source_code
52622 , source_value
52623 , source_meaning
52624 , created_by
52625 , creation_date
52626 , last_update_date
52627 , last_updated_by
52628 , last_update_login
52629 , program_update_date
52630 , program_application_id
52631 , program_id
52632 , request_id
52633 )
52634 SELECT event_id
52635 , p_target_ledger_id
52636 , p_sla_ledger_id
52637 , p_language
52638 , object_name
52639 , object_type_code
52640 , line_number
52641 , source_application_id
52642 , source_type_code
52643 , source_code
52644 , SUBSTR(source_value,1,1996)
52645 , SUBSTR(source_meaning ,1,200)
52646 , xla_environment_pkg.g_Usr_Id
52647 , TRUNC(SYSDATE)
52648 , TRUNC(SYSDATE)
52649 , xla_environment_pkg.g_Usr_Id
52650 , xla_environment_pkg.g_Login_Id
52651 , TRUNC(SYSDATE)
52652 , xla_environment_pkg.g_Prog_Appl_Id
52653 , xla_environment_pkg.g_Prog_Id
52654 , xla_environment_pkg.g_Req_Id
52655 FROM (
52656 SELECT xet.event_id event_id
52657 , l2.line_number line_number
52658 , CASE r
52659 WHEN 1 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52660 WHEN 2 THEN 'FV_XLA_PO_REF_V'
52661 WHEN 3 THEN 'FV_XLA_PO_REF_V'
52662 WHEN 4 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52663 WHEN 5 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52664 WHEN 6 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52665 WHEN 7 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52666 WHEN 8 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52667 WHEN 9 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52668 WHEN 10 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52669 WHEN 11 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52670 WHEN 12 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52671 WHEN 13 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52672 WHEN 14 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52673 WHEN 15 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52674 WHEN 16 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52675 WHEN 17 THEN 'PO_REQ_LINES_REF_V'
52676 WHEN 18 THEN 'PO_REQ_LINES_REF_V'
52677 WHEN 19 THEN 'PO_REQ_LINES_REF_V'
52678 WHEN 20 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52679 WHEN 21 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52680 WHEN 22 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52681 WHEN 23 THEN 'PO_REQ_EXTRACT_DETAIL_V'
52682
52683 ELSE null
52684 END object_name
52685 , CASE r
52686 WHEN 1 THEN 'LINE'
52687 WHEN 2 THEN 'LINE'
52688 WHEN 3 THEN 'LINE'
52689 WHEN 4 THEN 'LINE'
52690 WHEN 5 THEN 'LINE'
52691 WHEN 6 THEN 'LINE'
52692 WHEN 7 THEN 'LINE'
52693 WHEN 8 THEN 'LINE'
52694 WHEN 9 THEN 'LINE'
52695 WHEN 10 THEN 'LINE'
52696 WHEN 11 THEN 'LINE'
52697 WHEN 12 THEN 'LINE'
52698 WHEN 13 THEN 'LINE'
52699 WHEN 14 THEN 'LINE'
52700 WHEN 15 THEN 'LINE'
52701 WHEN 16 THEN 'LINE'
52702 WHEN 17 THEN 'LINE'
52703 WHEN 18 THEN 'LINE'
52704 WHEN 19 THEN 'LINE'
52705 WHEN 20 THEN 'LINE'
52706 WHEN 21 THEN 'LINE'
52710 ELSE null
52707 WHEN 22 THEN 'LINE'
52708 WHEN 23 THEN 'LINE'
52709
52711 END object_type_code
52712 , CASE r
52713 WHEN 1 THEN '201'
52714 WHEN 2 THEN '8901'
52715 WHEN 3 THEN '8901'
52716 WHEN 4 THEN '201'
52717 WHEN 5 THEN '201'
52718 WHEN 6 THEN '201'
52719 WHEN 7 THEN '201'
52720 WHEN 8 THEN '201'
52721 WHEN 9 THEN '201'
52722 WHEN 10 THEN '201'
52723 WHEN 11 THEN '201'
52724 WHEN 12 THEN '201'
52725 WHEN 13 THEN '201'
52726 WHEN 14 THEN '201'
52727 WHEN 15 THEN '201'
52728 WHEN 16 THEN '201'
52729 WHEN 17 THEN '201'
52730 WHEN 18 THEN '201'
52731 WHEN 19 THEN '201'
52732 WHEN 20 THEN '201'
52733 WHEN 21 THEN '201'
52734 WHEN 22 THEN '201'
52735 WHEN 23 THEN '201'
52736
52737 ELSE null
52738 END source_application_id
52739 , 'S' source_type_code
52740 , CASE r
52741 WHEN 1 THEN 'JE_LINE_DESCRIPTION'
52742 WHEN 2 THEN 'FEDERAL_FUND_CATEGORY'
52743 WHEN 3 THEN 'FEDERAL_FUND_EXPIRED_STATUS'
52744 WHEN 4 THEN 'BUDGET_ACCOUNT'
52745 WHEN 5 THEN 'MAIN_OR_BACKING_CODE'
52746 WHEN 6 THEN 'ACCOUNTING_REVERSAL_FLAG'
52747 WHEN 7 THEN 'DISTRIBUTION_LINK_TYPE'
52748 WHEN 8 THEN 'APPLIED_TO_APPL_ID'
52749 WHEN 9 THEN 'APPLIED_TO_DIST_LINK_TYPE'
52750 WHEN 10 THEN 'APPLIED_TO_ENTITY_CODE'
52751 WHEN 11 THEN 'APPLIED_TO_DIST_ID_1'
52752 WHEN 12 THEN 'APPLIED_TO_HEADER_ID_1'
52753 WHEN 13 THEN 'ENTERED_AMT'
52754 WHEN 14 THEN 'CURRENCY_CODE'
52755 WHEN 15 THEN 'ACCOUNTED_AMT'
52756 WHEN 16 THEN 'JFMIP_REFERENCE'
52757 WHEN 17 THEN 'CURRENCY_CONVERSION_DATE'
52758 WHEN 18 THEN 'CURRENCY_CONVERSION_RATE'
52759 WHEN 19 THEN 'CURRENCY_CONVERSION_TYPE'
52760 WHEN 20 THEN 'REQ_DISTRIBUTION_ID'
52761 WHEN 21 THEN 'REQ_ENCUM_UPG_OPTION'
52762 WHEN 22 THEN 'REQ_UPG_ENC_TYPE_ID'
52763 WHEN 23 THEN 'ADJUSTMENT_STATUS'
52764
52765 ELSE null
52766 END source_code
52767 , CASE r
52768 WHEN 1 THEN TO_CHAR(l2.JE_LINE_DESCRIPTION)
52769 WHEN 2 THEN TO_CHAR(l1.FEDERAL_FUND_CATEGORY)
52770 WHEN 3 THEN TO_CHAR(l1.FEDERAL_FUND_EXPIRED_STATUS)
52771 WHEN 4 THEN TO_CHAR(l2.BUDGET_ACCOUNT)
52772 WHEN 5 THEN TO_CHAR(l2.MAIN_OR_BACKING_CODE)
52773 WHEN 6 THEN TO_CHAR(l2.ACCOUNTING_REVERSAL_FLAG)
52774 WHEN 7 THEN TO_CHAR(l2.DISTRIBUTION_LINK_TYPE)
52775 WHEN 8 THEN TO_CHAR(l2.APPLIED_TO_APPL_ID)
52776 WHEN 9 THEN TO_CHAR(l2.APPLIED_TO_DIST_LINK_TYPE)
52777 WHEN 10 THEN TO_CHAR(l2.APPLIED_TO_ENTITY_CODE)
52778 WHEN 11 THEN TO_CHAR(l2.APPLIED_TO_DIST_ID_1)
52779 WHEN 12 THEN TO_CHAR(l2.APPLIED_TO_HEADER_ID_1)
52780 WHEN 13 THEN TO_CHAR(l2.ENTERED_AMT)
52781 WHEN 14 THEN TO_CHAR(l2.CURRENCY_CODE)
52782 WHEN 15 THEN TO_CHAR(l2.ACCOUNTED_AMT)
52783 WHEN 16 THEN TO_CHAR(l2.JFMIP_REFERENCE)
52784 WHEN 17 THEN TO_CHAR(l4.CURRENCY_CONVERSION_DATE)
52785 WHEN 18 THEN TO_CHAR(l4.CURRENCY_CONVERSION_RATE)
52786 WHEN 19 THEN TO_CHAR(l4.CURRENCY_CONVERSION_TYPE)
52787 WHEN 20 THEN TO_CHAR(l2.REQ_DISTRIBUTION_ID)
52788 WHEN 21 THEN TO_CHAR(l2.REQ_ENCUM_UPG_OPTION)
52789 WHEN 22 THEN TO_CHAR(l2.REQ_UPG_ENC_TYPE_ID)
52790 WHEN 23 THEN TO_CHAR(l2.ADJUSTMENT_STATUS)
52791
52792 ELSE null
52793 END source_value
52794 , null source_meaning
52795 FROM xla_events_gt xet
52796 , FV_XLA_PO_REF_V l1
52797 , PO_REQ_EXTRACT_DETAIL_V l2
52798 , PO_REQ_LINES_REF_V l4
52799 , (select rownum r from all_objects where rownum <= 23 and owner = p_apps_owner)
52800 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
52801 AND xet.event_class_code = C_EVENT_CLASS_CODE
52802 AND l2.event_id = xet.event_id
52803 AND l1.federal_event_id (+) =l2.event_id and l1.federal_line_number (+) =l2.line_number AND l2.req_line_id = l4.req_line_id (+)
52804 )
52805 ;
52806 --
52807 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
52808
52809 trace
52810 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
52811 ,p_level => C_LEVEL_STATEMENT
52812 ,p_module => l_log_module);
52813
52814 END IF;
52815
52816
52817 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52818 trace
52819 (p_msg => 'END of insert_sources_88'
52820 ,p_level => C_LEVEL_PROCEDURE
52821 ,p_module => l_log_module);
52822 END IF;
52823 EXCEPTION
52824 WHEN xla_exceptions_pkg.application_exception THEN
52825 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
52826 trace
52827 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
52828 ,p_level => C_LEVEL_EXCEPTION
52829 ,p_module => l_log_module);
52830 END IF;
52831 RAISE;
52832 WHEN OTHERS THEN
52833 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
52834 trace
52835 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
52836 ,p_level => C_LEVEL_EXCEPTION
52837 ,p_module => l_log_module);
52838 END IF;
52839 xla_exceptions_pkg.raise_message
52840 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.insert_sources_88');
52841 END insert_sources_88;
52842 --
52843
52844 ---------------------------------------
52845 --
52846 -- PRIVATE FUNCTION
52847 -- EventClass_88
52848 --
52849 ----------------------------------------
52850 --
52851 FUNCTION EventClass_88
52852 (p_application_id IN NUMBER
52853 ,p_base_ledger_id IN NUMBER
52854 ,p_target_ledger_id IN NUMBER
52855 ,p_language IN VARCHAR2
52856 ,p_currency_code IN VARCHAR2
52857 ,p_sla_ledger_id IN NUMBER
52858 ,p_pad_start_date IN DATE
52859 ,p_pad_end_date IN DATE
52860 ,p_primary_ledger_id IN NUMBER)
52861 RETURN BOOLEAN IS
52862 --
52863 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REQUISITION_ALL';
52864 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REQUISITION';
52865
52866 l_calculate_acctd_flag VARCHAR2(1) :='N';
52867 l_calculate_g_l_flag VARCHAR2(1) :='N';
52868 --
52869 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
52870 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
52871 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
52872 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
52873 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
52874 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
52875 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
52876 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
52877 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
52878 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
52879 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
52880 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
52881 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
52885 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
52882 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
52883 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
52884 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
52886 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
52887 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
52888 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
52889 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
52890 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
52891 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
52892 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
52893
52894 l_event_id NUMBER;
52895 l_previous_event_id NUMBER;
52896 l_first_event_id NUMBER;
52897 l_last_event_id NUMBER;
52898
52899 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
52900 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52901 --
52902 --
52903 l_result BOOLEAN := TRUE;
52904 l_rows NUMBER := 1000;
52905 l_event_type_name VARCHAR2(80) := 'All';
52906 l_event_class_name VARCHAR2(80) := 'Requisition';
52907 l_description VARCHAR2(4000);
52908 l_transaction_reversal NUMBER;
52909 l_ae_header_id NUMBER;
52910 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
52911 l_log_module VARCHAR2(240);
52912 --
52913 l_acct_reversal_source VARCHAR2(30);
52914 l_trx_reversal_source VARCHAR2(30);
52915
52916 l_continue_with_lines BOOLEAN := TRUE;
52917 --
52918 l_acc_rev_gl_date_source DATE; -- 4262811
52919 --
52920 type t_array_event_id is table of number index by binary_integer;
52921
52922 l_rec_array_event t_rec_array_event;
52923 l_null_rec_array_event t_rec_array_event;
52924 l_array_ae_header_id xla_number_array_type;
52925 l_actual_flag VARCHAR2(1) := NULL;
52926 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
52927 l_balance_type_code VARCHAR2(1) :=NULL;
52928 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
52929
52930 --
52931 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
52932 --
52933
52934 TYPE t_array_source_5 IS TABLE OF PO_REQ_EXTRACT_HEADER_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
52935 TYPE t_array_source_6 IS TABLE OF PO_REQ_EXTRACT_HEADER_V.REQ_NUMBER%TYPE INDEX BY BINARY_INTEGER;
52936 TYPE t_array_source_44 IS TABLE OF PO_REQ_EXTRACT_HEADER_V.REQ_ID%TYPE INDEX BY BINARY_INTEGER;
52937 TYPE t_array_source_48 IS TABLE OF PO_REQ_EXTRACT_HEADER_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
52938 TYPE t_array_source_49 IS TABLE OF PO_REQ_EXTRACT_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
52939
52940 TYPE t_array_source_3 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.JE_LINE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
52941 TYPE t_array_source_7 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_FUND_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
52942 TYPE t_array_source_8 IS TABLE OF FV_XLA_PO_REF_V.FEDERAL_FUND_EXPIRED_STATUS%TYPE INDEX BY BINARY_INTEGER;
52943 TYPE t_array_source_9 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
52944 TYPE t_array_source_13 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.MAIN_OR_BACKING_CODE%TYPE INDEX BY BINARY_INTEGER;
52945 TYPE t_array_source_15 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.ACCOUNTING_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
52946 TYPE t_array_source_17 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
52947 TYPE t_array_source_21 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
52948 TYPE t_array_source_22 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
52949 TYPE t_array_source_23 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
52950 TYPE t_array_source_24 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.APPLIED_TO_DIST_ID_1%TYPE INDEX BY BINARY_INTEGER;
52951 TYPE t_array_source_25 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.APPLIED_TO_HEADER_ID_1%TYPE INDEX BY BINARY_INTEGER;
52952 TYPE t_array_source_26 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
52953 TYPE t_array_source_27 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
52954 TYPE t_array_source_28 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.ACCOUNTED_AMT%TYPE INDEX BY BINARY_INTEGER;
52955 TYPE t_array_source_31 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.JFMIP_REFERENCE%TYPE INDEX BY BINARY_INTEGER;
52956 TYPE t_array_source_35 IS TABLE OF PO_REQ_LINES_REF_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
52957 TYPE t_array_source_36 IS TABLE OF PO_REQ_LINES_REF_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
52958 TYPE t_array_source_37 IS TABLE OF PO_REQ_LINES_REF_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
52959 TYPE t_array_source_43 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.REQ_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
52960 TYPE t_array_source_45 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.REQ_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
52961 TYPE t_array_source_46 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.REQ_UPG_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
52962 TYPE t_array_source_47 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.ADJUSTMENT_STATUS%TYPE INDEX BY BINARY_INTEGER;
52963
52964 l_array_source_5 t_array_source_5;
52965 l_array_source_6 t_array_source_6;
52966 l_array_source_44 t_array_source_44;
52967 l_array_source_48 t_array_source_48;
52968 l_array_source_49 t_array_source_49;
52969
52970 l_array_source_3 t_array_source_3;
52971 l_array_source_7 t_array_source_7;
52975 l_array_source_15 t_array_source_15;
52972 l_array_source_8 t_array_source_8;
52973 l_array_source_9 t_array_source_9;
52974 l_array_source_13 t_array_source_13;
52976 l_array_source_17 t_array_source_17;
52977 l_array_source_21 t_array_source_21;
52978 l_array_source_22 t_array_source_22;
52979 l_array_source_23 t_array_source_23;
52980 l_array_source_24 t_array_source_24;
52981 l_array_source_25 t_array_source_25;
52982 l_array_source_26 t_array_source_26;
52983 l_array_source_27 t_array_source_27;
52984 l_array_source_28 t_array_source_28;
52985 l_array_source_31 t_array_source_31;
52986 l_array_source_35 t_array_source_35;
52987 l_array_source_36 t_array_source_36;
52988 l_array_source_37 t_array_source_37;
52989 l_array_source_43 t_array_source_43;
52990 l_array_source_45 t_array_source_45;
52991 l_array_source_46 t_array_source_46;
52992 l_array_source_47 t_array_source_47;
52993
52994 --
52995 CURSOR header_cur
52996 IS
52997 SELECT /*+ leading(xet) cardinality(xet,1) */
52998 -- Event Class Code: REQUISITION
52999 xet.entity_id
53000 ,xet.legal_entity_id
53001 ,xet.entity_code
53002 ,xet.transaction_number
53003 ,xet.event_id
53004 ,xet.event_class_code
53005 ,xet.event_type_code
53006 ,xet.event_number
53007 ,xet.event_date
53008 ,xet.transaction_date
53009 ,xet.reference_num_1
53010 ,xet.reference_num_2
53011 ,xet.reference_num_3
53012 ,xet.reference_num_4
53013 ,xet.reference_char_1
53014 ,xet.reference_char_2
53015 ,xet.reference_char_3
53016 ,xet.reference_char_4
53017 ,xet.reference_date_1
53018 ,xet.reference_date_2
53019 ,xet.reference_date_3
53020 ,xet.reference_date_4
53021 ,xet.event_created_by
53022 ,xet.budgetary_control_flag
53023 , h3.DOCUMENT_TYPE source_5
53024 , h3.REQ_NUMBER source_6
53025 , h3.REQ_ID source_44
53026 , h3.ENCUMBRANCE_TYPE_ID source_48
53027 , h3.GL_DATE source_49
53028 FROM xla_events_gt xet
53029 , PO_REQ_EXTRACT_HEADER_V h3
53030 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
53031 and xet.event_class_code = C_EVENT_CLASS_CODE
53032 and xet.event_status_code <> 'N' AND h3.event_id = xet.event_id
53033
53034 ORDER BY event_id
53035 ;
53036
53037
53038 --
53039 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
53040 IS
53041 SELECT /*+ leading(xet) cardinality(xet,1) */
53042 -- Event Class Code: REQUISITION
53043 xet.entity_id
53044 ,xet.legal_entity_id
53045 ,xet.entity_code
53046 ,xet.transaction_number
53047 ,xet.event_id
53048 ,xet.event_class_code
53049 ,xet.event_type_code
53050 ,xet.event_number
53051 ,xet.event_date
53052 ,xet.transaction_date
53053 ,xet.reference_num_1
53054 ,xet.reference_num_2
53055 ,xet.reference_num_3
53056 ,xet.reference_num_4
53057 ,xet.reference_char_1
53058 ,xet.reference_char_2
53059 ,xet.reference_char_3
53060 ,xet.reference_char_4
53061 ,xet.reference_date_1
53062 ,xet.reference_date_2
53063 ,xet.reference_date_3
53064 ,xet.reference_date_4
53065 ,xet.event_created_by
53066 ,xet.budgetary_control_flag
53067 , l2.LINE_NUMBER
53068 , l2.JE_LINE_DESCRIPTION source_3
53069 , l1.FEDERAL_FUND_CATEGORY source_7
53070 , l1.FEDERAL_FUND_EXPIRED_STATUS source_8
53071 , l2.BUDGET_ACCOUNT source_9
53072 , l2.MAIN_OR_BACKING_CODE source_13
53073 , l2.ACCOUNTING_REVERSAL_FLAG source_15
53074 , l2.DISTRIBUTION_LINK_TYPE source_17
53075 , l2.APPLIED_TO_APPL_ID source_21
53076 , l2.APPLIED_TO_DIST_LINK_TYPE source_22
53077 , l2.APPLIED_TO_ENTITY_CODE source_23
53078 , l2.APPLIED_TO_DIST_ID_1 source_24
53079 , l2.APPLIED_TO_HEADER_ID_1 source_25
53080 , l2.ENTERED_AMT source_26
53081 , l2.CURRENCY_CODE source_27
53082 , l2.ACCOUNTED_AMT source_28
53083 , l2.JFMIP_REFERENCE source_31
53084 , l4.CURRENCY_CONVERSION_DATE source_35
53085 , l4.CURRENCY_CONVERSION_RATE source_36
53086 , l4.CURRENCY_CONVERSION_TYPE source_37
53087 , l2.REQ_DISTRIBUTION_ID source_43
53088 , l2.REQ_ENCUM_UPG_OPTION source_45
53089 , l2.REQ_UPG_ENC_TYPE_ID source_46
53090 , l2.ADJUSTMENT_STATUS source_47
53091 FROM xla_events_gt xet
53092 , FV_XLA_PO_REF_V l1
53093 , PO_REQ_EXTRACT_DETAIL_V l2
53094 , PO_REQ_LINES_REF_V l4
53095 WHERE xet.event_id between x_first_event_id and x_last_event_id
53096 and xet.event_date between p_pad_start_date and p_pad_end_date
53097 and xet.event_class_code = C_EVENT_CLASS_CODE
53098 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
53099 AND l1.Federal_Event_id (+) =l2.event_id AND l1.federal_line_number (+) =l2.line_number AND l2.req_line_id = l4.req_line_id (+) ;
53100
53101 --
53102 BEGIN
53103 IF g_log_enabled THEN
53104 l_log_module := C_DEFAULT_MODULE||'.EventClass_88';
53105 END IF;
53106 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53107 trace
53108 (p_msg => 'BEGIN of EventClass_88'
53109 ,p_level => C_LEVEL_PROCEDURE
53110 ,p_module => l_log_module);
53111 END IF;
53112
53113 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
53114 trace
53115 (p_msg => 'p_application_id = '||p_application_id||
53116 ' - p_base_ledger_id = '||p_base_ledger_id||
53117 ' - p_target_ledger_id = '||p_target_ledger_id||
53118 ' - p_language = '||p_language||
53122 ,p_module => l_log_module);
53119 ' - p_currency_code = '||p_currency_code||
53120 ' - p_sla_ledger_id = '||p_sla_ledger_id
53121 ,p_level => C_LEVEL_STATEMENT
53123 END IF;
53124 --
53125 -- initialze arrays
53126 --
53127 g_array_event.DELETE;
53128 l_rec_array_event := l_null_rec_array_event;
53129 --
53130 --------------------------------------
53131 -- 4262811 Initialze MPA Line Number
53132 --------------------------------------
53133 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
53134
53135 --
53136
53137 --
53138 OPEN header_cur;
53139 --
53140 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
53141 trace
53142 (p_msg => 'SQL - FETCH header_cur'
53143 ,p_level => C_LEVEL_STATEMENT
53144 ,p_module => l_log_module);
53145 END IF;
53146 --
53147 LOOP
53148 FETCH header_cur BULK COLLECT INTO
53149 l_array_entity_id
53150 , l_array_legal_entity_id
53151 , l_array_entity_code
53152 , l_array_transaction_num
53153 , l_array_event_id
53154 , l_array_class_code
53155 , l_array_event_type
53156 , l_array_event_number
53157 , l_array_event_date
53158 , l_array_transaction_date
53159 , l_array_reference_num_1
53160 , l_array_reference_num_2
53161 , l_array_reference_num_3
53162 , l_array_reference_num_4
53163 , l_array_reference_char_1
53164 , l_array_reference_char_2
53165 , l_array_reference_char_3
53166 , l_array_reference_char_4
53167 , l_array_reference_date_1
53168 , l_array_reference_date_2
53169 , l_array_reference_date_3
53170 , l_array_reference_date_4
53171 , l_array_event_created_by
53172 , l_array_budgetary_control_flag
53173 , l_array_source_5
53174 , l_array_source_6
53175 , l_array_source_44
53176 , l_array_source_48
53177 , l_array_source_49
53178 LIMIT l_rows;
53179 --
53180 IF (C_LEVEL_EVENT >= g_log_level) THEN
53181 trace
53182 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
53183 ,p_level => C_LEVEL_EVENT
53184 ,p_module => l_log_module);
53185 END IF;
53186 --
53187 EXIT WHEN l_array_entity_id.COUNT = 0;
53188
53189 -- initialize arrays
53190 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
53191 XLA_AE_LINES_PKG.g_rec_lines := NULL;
53192
53193 --
53194 -- Bug 4458708
53195 --
53196 XLA_AE_LINES_PKG.g_LineNumber := 0;
53197
53198
53199 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
53200 g_last_hdr_idx := l_array_event_id.LAST;
53201 --
53202 -- loop for the headers. Each iteration is for each header extract row
53203 -- fetched in header cursor
53204 --
53205 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
53206
53207 --
53208 -- set event info as cache for other routines to refer event attributes
53209 --
53210 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
53211 (p_application_id => p_application_id
53212 ,p_primary_ledger_id => p_primary_ledger_id
53213 ,p_base_ledger_id => p_base_ledger_id
53214 ,p_target_ledger_id => p_target_ledger_id
53215 ,p_entity_id => l_array_entity_id(hdr_idx)
53216 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
53217 ,p_entity_code => l_array_entity_code(hdr_idx)
53218 ,p_transaction_num => l_array_transaction_num(hdr_idx)
53219 ,p_event_id => l_array_event_id(hdr_idx)
53220 ,p_event_class_code => l_array_class_code(hdr_idx)
53221 ,p_event_type_code => l_array_event_type(hdr_idx)
53222 ,p_event_number => l_array_event_number(hdr_idx)
53223 ,p_event_date => l_array_event_date(hdr_idx)
53224 ,p_transaction_date => l_array_transaction_date(hdr_idx)
53225 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
53226 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
53227 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
53228 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
53229 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
53230 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
53231 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
53232 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
53233 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
53234 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
53235 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
53236 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
53237 ,p_event_created_by => l_array_event_created_by(hdr_idx)
53238 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
53239
53240 --
53241 -- set the status of entry to C_VALID (0)
53242 --
53243 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
53244
53245 --
53246 -- initialize a row for ae header
53247 --
53248 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
53249
53250 l_event_id := l_array_event_id(hdr_idx);
53251
53252 --
53253 -- storing the hdr_idx for event. May be used by line cursor.
53254 --
53255 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
53256
53257 --
53258 -- store sources from header extract. This can be improved to
53259 -- store only those sources from header extract that may be used in lines
53260 --
53261
53262 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
53263 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
53264 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
53265 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
53266 g_array_event(l_event_id).array_value_date('source_49') := l_array_source_49(hdr_idx);
53267
53268 --
53269 -- initilaize the status of ae headers for diffrent balance types
53270 -- the status is initialised to C_NOT_CREATED (2)
53271 --
53272 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
53273 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
53274 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
53275
53276 --
53277 -- call api to validate and store accounting attributes for header
53278 --
53279
53280 ------------------------------------------------------------
53281 -- Accrual Reversal : to get date for Standard Source (NONE)
53282 ------------------------------------------------------------
53283 l_acc_rev_gl_date_source := NULL;
53284
53285 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
53286 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_48');
53287 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
53288 l_rec_acct_attrs.array_date_value(2) := g_array_event(l_event_id).array_value_date('source_49');
53289
53290
53291 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
53292
53293 XLA_AE_HEADER_PKG.SetJeCategoryName;
53294
53295 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
53296 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
53297 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
53298 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
53299 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
53300
53301
53302 --
53303 xla_ae_header_pkg.SetHdrDescription(
53304 p_description => Description_4 (
53305 p_application_id => p_application_id
53306 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
53307 , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
53308 )
53309 );
53310 --
53311
53312 -- No header level analytical criteria
53313
53314 --
53315 --accounting attribute enhancement, bug 3612931
53316 --
53317 l_trx_reversal_source := SUBSTR(NULL, 1,30);
53318
53319 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
53320 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
53321
53322 xla_accounting_err_pkg.build_message
53323 (p_appli_s_name => 'XLA'
53324 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
53325 ,p_token_1 => 'ACCT_ATTR_NAME'
53326 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
53327 ,p_token_2 => 'PRODUCT_NAME'
53328 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
53329 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
53330 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
53331 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
53332
53333 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
53334 --
53335 -- following sets the accounting attributes needed to reverse
53336 -- accounting for a distributeion
53337 --
53338 xla_ae_lines_pkg.SetTrxReversalAttrs
53339 (p_event_id => l_event_id
53340 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
53341 ,p_trx_reversal_source => l_trx_reversal_source);
53342
53343 END IF;
53344
53345
53346 ----------------------------------------------------------------
53347 -- 4262811 - update the header statuses to invalid in need be
53348 ----------------------------------------------------------------
53349 --
53350 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
53351
53352
53353 -----------------------------------------------
53354 -- No accrual reversal for the event class/type
53355 -----------------------------------------------
53356 ----------------------------------------------------------------
53357
53358 --
53359 -- this ends the header loop iteration for one bulk fetch
53360 --
53361 END LOOP;
53362
53363 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
53364 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
53365
53366 --
53367 -- insert dummy rows into lines gt table that were created due to
53368 -- transaction reversals
53369 --
53370 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
53371 l_result := XLA_AE_LINES_PKG.InsertLines;
53372 END IF;
53373
53374 --
53375 -- reset the temp_line_num for each set of events fetched from header
53376 -- cursor rather than doing it for each new event in line cursor
53377 -- Bug 3939231
53378 --
53379 xla_ae_lines_pkg.g_temp_line_num := 0;
53380
53381
53382
53383 --
53384 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
53385 --
53386 --
53387 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
53388
53389 trace
53390 (p_msg => 'SQL - FETCH line_cur'
53391 ,p_level => C_LEVEL_STATEMENT
53392 ,p_module => l_log_module);
53393
53394 END IF;
53395 --
53396 --
53397 LOOP
53398 --
53399 FETCH line_cur BULK COLLECT INTO
53400 l_array_entity_id
53401 , l_array_legal_entity_id
53402 , l_array_entity_code
53403 , l_array_transaction_num
53404 , l_array_event_id
53405 , l_array_class_code
53406 , l_array_event_type
53407 , l_array_event_number
53408 , l_array_event_date
53409 , l_array_transaction_date
53410 , l_array_reference_num_1
53411 , l_array_reference_num_2
53412 , l_array_reference_num_3
53413 , l_array_reference_num_4
53414 , l_array_reference_char_1
53415 , l_array_reference_char_2
53416 , l_array_reference_char_3
53417 , l_array_reference_char_4
53418 , l_array_reference_date_1
53419 , l_array_reference_date_2
53420 , l_array_reference_date_3
53421 , l_array_reference_date_4
53422 , l_array_event_created_by
53423 , l_array_budgetary_control_flag
53424 , l_array_extract_line_num
53425 , l_array_source_3
53426 , l_array_source_7
53427 , l_array_source_8
53428 , l_array_source_9
53429 , l_array_source_13
53430 , l_array_source_15
53431 , l_array_source_17
53432 , l_array_source_21
53433 , l_array_source_22
53434 , l_array_source_23
53435 , l_array_source_24
53436 , l_array_source_25
53437 , l_array_source_26
53438 , l_array_source_27
53439 , l_array_source_28
53440 , l_array_source_31
53441 , l_array_source_35
53442 , l_array_source_36
53443 , l_array_source_37
53444 , l_array_source_43
53445 , l_array_source_45
53446 , l_array_source_46
53447 , l_array_source_47
53448 LIMIT l_rows;
53449
53450 --
53451 IF (C_LEVEL_EVENT >= g_log_level) THEN
53452 trace
53453 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
53454 ,p_level => C_LEVEL_EVENT
53455 ,p_module => l_log_module);
53456 END IF;
53457 --
53458 EXIT WHEN l_array_entity_id.count = 0;
53459
53460 XLA_AE_LINES_PKG.g_rec_lines := null;
53461
53462 --
53463 -- Bug 4458708
53464 --
53465 XLA_AE_LINES_PKG.g_LineNumber := 0;
53466 --
53467 --
53468
53469 FOR Idx IN 1..l_array_event_id.count LOOP
53470 --
53474
53471 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
53472 --
53473 l_event_id := l_array_event_id(idx); -- 5648433
53475 --
53476 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
53477 --
53478
53479 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
53480 (g_array_event(l_event_id).array_value_num('header_index'))
53481 ,'N'
53482 ) <> 'Y'
53483 THEN
53484 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
53485 trace
53486 (p_msg => 'Trancaction revesal option is not Y '
53487 ,p_level => C_LEVEL_STATEMENT
53488 ,p_module => l_log_module);
53489 END IF;
53490
53491 --
53492 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
53493 --
53494 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
53495 --
53496 -- set event info as cache for other routines to refer event attributes
53497 --
53498
53499 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
53500 l_previous_event_id := l_event_id;
53501
53502 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
53503 (p_application_id => p_application_id
53504 ,p_primary_ledger_id => p_primary_ledger_id
53505 ,p_base_ledger_id => p_base_ledger_id
53506 ,p_target_ledger_id => p_target_ledger_id
53507 ,p_entity_id => l_array_entity_id(Idx)
53508 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
53509 ,p_entity_code => l_array_entity_code(Idx)
53510 ,p_transaction_num => l_array_transaction_num(Idx)
53511 ,p_event_id => l_array_event_id(Idx)
53512 ,p_event_class_code => l_array_class_code(Idx)
53513 ,p_event_type_code => l_array_event_type(Idx)
53514 ,p_event_number => l_array_event_number(Idx)
53515 ,p_event_date => l_array_event_date(Idx)
53516 ,p_transaction_date => l_array_transaction_date(Idx)
53517 ,p_reference_num_1 => l_array_reference_num_1(Idx)
53518 ,p_reference_num_2 => l_array_reference_num_2(Idx)
53519 ,p_reference_num_3 => l_array_reference_num_3(Idx)
53520 ,p_reference_num_4 => l_array_reference_num_4(Idx)
53521 ,p_reference_char_1 => l_array_reference_char_1(Idx)
53522 ,p_reference_char_2 => l_array_reference_char_2(Idx)
53523 ,p_reference_char_3 => l_array_reference_char_3(Idx)
53524 ,p_reference_char_4 => l_array_reference_char_4(Idx)
53525 ,p_reference_date_1 => l_array_reference_date_1(Idx)
53526 ,p_reference_date_2 => l_array_reference_date_2(Idx)
53527 ,p_reference_date_3 => l_array_reference_date_3(Idx)
53528 ,p_reference_date_4 => l_array_reference_date_4(Idx)
53529 ,p_event_created_by => l_array_event_created_by(Idx)
53530 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
53531 --
53532 END IF;
53533
53534
53535
53536 --
53537 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
53538
53539 l_acct_reversal_source := SUBSTR(l_array_source_15(Idx), 1,30);
53540
53541 IF l_continue_with_lines THEN
53542 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
53543 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
53544
53545 xla_accounting_err_pkg.build_message
53546 (p_appli_s_name => 'XLA'
53547 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
53548 ,p_token_1 => 'LINE_NUMBER'
53549 ,p_value_1 => l_array_extract_line_num(Idx)
53550 ,p_token_2 => 'PRODUCT_NAME'
53551 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
53552 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
53553 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
53554 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
53555
53556 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
53557 --
53558 -- following sets the accounting attributes needed to reverse
53559 -- accounting for a distributeion
53560 --
53561
53562 --
53563 -- 5217187
53564 --
53565 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
53566 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
53567 g_array_event(l_event_id).array_value_num('header_index'));
53568 --
53569 --
53570
53571 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
53572 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_15(Idx);
53573 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
53574 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_43(Idx);
53575 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
53576 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_17(Idx);
53577 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
53578 l_rec_rev_acct_attrs.array_num_value(5) := TO_NUMBER(l_array_source_9(Idx));
53579 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
53580 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_26(Idx);
53584 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_28(Idx);
53581 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
53582 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_27(Idx);
53583 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
53585 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
53586 l_rec_rev_acct_attrs.array_num_value(9) := TO_NUMBER(l_array_source_9(Idx));
53587 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
53588 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_26(Idx);
53589 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
53590 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_27(Idx);
53591 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
53592 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_28(Idx);
53593 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
53594 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_45(Idx);
53595 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
53596 l_rec_rev_acct_attrs.array_num_value(14) := l_array_source_24(Idx);
53597 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
53598 l_rec_rev_acct_attrs.array_char_value(15) := l_array_source_22(Idx);
53599 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'UPG_CR_ENC_TYPE_ID';
53600 l_rec_rev_acct_attrs.array_num_value(16) := l_array_source_46(Idx);
53601 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'UPG_DR_ENC_TYPE_ID';
53602 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_46(Idx);
53603
53604
53605 xla_ae_lines_pkg.SetAcctReversalAttrs
53606 (p_event_id => l_event_id
53607 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
53608 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53609 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
53610 END IF;
53611
53612 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
53613 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
53614
53615 --
53616 AcctLineType_78 (
53617 p_application_id => p_application_id
53618 ,p_event_id => l_event_id
53619 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53620 ,p_calculate_g_l_flag => l_calculate_g_l_flag
53621 ,p_actual_flag => l_actual_flag
53622 ,p_balance_type_code => l_balance_type_code
53623 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
53624
53625 , p_source_9 => l_array_source_9(Idx)
53626 , p_source_15 => l_array_source_15(Idx)
53627 , p_source_17 => l_array_source_17(Idx)
53628 , p_source_21 => l_array_source_21(Idx)
53629 , p_source_22 => l_array_source_22(Idx)
53630 , p_source_23 => l_array_source_23(Idx)
53631 , p_source_24 => l_array_source_24(Idx)
53632 , p_source_25 => l_array_source_25(Idx)
53633 , p_source_26 => l_array_source_26(Idx)
53634 , p_source_27 => l_array_source_27(Idx)
53635 , p_source_28 => l_array_source_28(Idx)
53636 , p_source_31 => l_array_source_31(Idx)
53637 , p_source_43 => l_array_source_43(Idx)
53638 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
53639 , p_source_45 => l_array_source_45(Idx)
53640 , p_source_46 => l_array_source_46(Idx)
53641 );
53642 If(l_balance_type_code = 'A') THEN
53643 l_actual_gain_loss_ref := l_gain_or_loss_ref;
53644 END IF;
53645
53646 --
53647
53648
53649 --
53650 AcctLineType_79 (
53651 p_application_id => p_application_id
53652 ,p_event_id => l_event_id
53653 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53654 ,p_calculate_g_l_flag => l_calculate_g_l_flag
53655 ,p_actual_flag => l_actual_flag
53656 ,p_balance_type_code => l_balance_type_code
53657 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
53658
53659 , p_source_9 => l_array_source_9(Idx)
53660 , p_source_15 => l_array_source_15(Idx)
53661 , p_source_17 => l_array_source_17(Idx)
53662 , p_source_21 => l_array_source_21(Idx)
53663 , p_source_22 => l_array_source_22(Idx)
53664 , p_source_23 => l_array_source_23(Idx)
53665 , p_source_24 => l_array_source_24(Idx)
53666 , p_source_25 => l_array_source_25(Idx)
53667 , p_source_26 => l_array_source_26(Idx)
53668 , p_source_27 => l_array_source_27(Idx)
53669 , p_source_28 => l_array_source_28(Idx)
53670 , p_source_31 => l_array_source_31(Idx)
53671 , p_source_43 => l_array_source_43(Idx)
53672 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
53673 , p_source_45 => l_array_source_45(Idx)
53674 , p_source_46 => l_array_source_46(Idx)
53675 );
53676 If(l_balance_type_code = 'A') THEN
53677 l_actual_gain_loss_ref := l_gain_or_loss_ref;
53678 END IF;
53679
53680 --
53681
53682
53683 --
53684 AcctLineType_82 (
53685 p_application_id => p_application_id
53686 ,p_event_id => l_event_id
53687 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53688 ,p_calculate_g_l_flag => l_calculate_g_l_flag
53689 ,p_actual_flag => l_actual_flag
53690 ,p_balance_type_code => l_balance_type_code
53691 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
53692
53693 , p_source_3 => l_array_source_3(Idx)
53694 , p_source_7 => l_array_source_7(Idx)
53695 , p_source_9 => l_array_source_9(Idx)
53696 , p_source_13 => l_array_source_13(Idx)
53697 , p_source_15 => l_array_source_15(Idx)
53698 , p_source_17 => l_array_source_17(Idx)
53699 , p_source_21 => l_array_source_21(Idx)
53700 , p_source_22 => l_array_source_22(Idx)
53701 , p_source_23 => l_array_source_23(Idx)
53702 , p_source_24 => l_array_source_24(Idx)
53703 , p_source_25 => l_array_source_25(Idx)
53704 , p_source_26 => l_array_source_26(Idx)
53705 , p_source_27 => l_array_source_27(Idx)
53706 , p_source_28 => l_array_source_28(Idx)
53707 , p_source_31 => l_array_source_31(Idx)
53708 , p_source_35 => l_array_source_35(Idx)
53709 , p_source_36 => l_array_source_36(Idx)
53710 , p_source_37 => l_array_source_37(Idx)
53711 , p_source_43 => l_array_source_43(Idx)
53712 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
53713 , p_source_45 => l_array_source_45(Idx)
53714 , p_source_46 => l_array_source_46(Idx)
53715 , p_source_47 => l_array_source_47(Idx)
53716 );
53717 If(l_balance_type_code = 'A') THEN
53718 l_actual_gain_loss_ref := l_gain_or_loss_ref;
53719 END IF;
53720
53721 --
53722
53723
53724 --
53725 AcctLineType_83 (
53726 p_application_id => p_application_id
53727 ,p_event_id => l_event_id
53728 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53729 ,p_calculate_g_l_flag => l_calculate_g_l_flag
53730 ,p_actual_flag => l_actual_flag
53731 ,p_balance_type_code => l_balance_type_code
53732 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
53733
53734 , p_source_3 => l_array_source_3(Idx)
53735 , p_source_7 => l_array_source_7(Idx)
53736 , p_source_8 => l_array_source_8(Idx)
53737 , p_source_9 => l_array_source_9(Idx)
53738 , p_source_13 => l_array_source_13(Idx)
53739 , p_source_15 => l_array_source_15(Idx)
53740 , p_source_17 => l_array_source_17(Idx)
53741 , p_source_21 => l_array_source_21(Idx)
53742 , p_source_22 => l_array_source_22(Idx)
53743 , p_source_23 => l_array_source_23(Idx)
53744 , p_source_24 => l_array_source_24(Idx)
53745 , p_source_25 => l_array_source_25(Idx)
53746 , p_source_26 => l_array_source_26(Idx)
53747 , p_source_27 => l_array_source_27(Idx)
53748 , p_source_28 => l_array_source_28(Idx)
53749 , p_source_31 => l_array_source_31(Idx)
53750 , p_source_35 => l_array_source_35(Idx)
53751 , p_source_36 => l_array_source_36(Idx)
53752 , p_source_37 => l_array_source_37(Idx)
53753 , p_source_43 => l_array_source_43(Idx)
53754 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
53755 , p_source_45 => l_array_source_45(Idx)
53756 , p_source_46 => l_array_source_46(Idx)
53757 , p_source_47 => l_array_source_47(Idx)
53758 );
53759 If(l_balance_type_code = 'A') THEN
53760 l_actual_gain_loss_ref := l_gain_or_loss_ref;
53761 END IF;
53762
53763 --
53764
53765
53766 --
53767 AcctLineType_84 (
53768 p_application_id => p_application_id
53769 ,p_event_id => l_event_id
53770 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53771 ,p_calculate_g_l_flag => l_calculate_g_l_flag
53772 ,p_actual_flag => l_actual_flag
53773 ,p_balance_type_code => l_balance_type_code
53774 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
53775
53776 , p_source_9 => l_array_source_9(Idx)
53777 , p_source_13 => l_array_source_13(Idx)
53778 , p_source_15 => l_array_source_15(Idx)
53779 , p_source_17 => l_array_source_17(Idx)
53780 , p_source_21 => l_array_source_21(Idx)
53781 , p_source_22 => l_array_source_22(Idx)
53782 , p_source_23 => l_array_source_23(Idx)
53783 , p_source_24 => l_array_source_24(Idx)
53784 , p_source_25 => l_array_source_25(Idx)
53785 , p_source_26 => l_array_source_26(Idx)
53786 , p_source_27 => l_array_source_27(Idx)
53787 , p_source_28 => l_array_source_28(Idx)
53788 , p_source_31 => l_array_source_31(Idx)
53789 , p_source_43 => l_array_source_43(Idx)
53790 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
53791 , p_source_45 => l_array_source_45(Idx)
53792 , p_source_46 => l_array_source_46(Idx)
53793 , p_source_47 => l_array_source_47(Idx)
53794 );
53795 If(l_balance_type_code = 'A') THEN
53796 l_actual_gain_loss_ref := l_gain_or_loss_ref;
53797 END IF;
53798
53799 --
53800
53801
53802 --
53803 AcctLineType_85 (
53804 p_application_id => p_application_id
53805 ,p_event_id => l_event_id
53806 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53807 ,p_calculate_g_l_flag => l_calculate_g_l_flag
53808 ,p_actual_flag => l_actual_flag
53809 ,p_balance_type_code => l_balance_type_code
53810 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
53811
53812 , p_source_9 => l_array_source_9(Idx)
53813 , p_source_13 => l_array_source_13(Idx)
53814 , p_source_15 => l_array_source_15(Idx)
53815 , p_source_17 => l_array_source_17(Idx)
53816 , p_source_21 => l_array_source_21(Idx)
53817 , p_source_22 => l_array_source_22(Idx)
53818 , p_source_23 => l_array_source_23(Idx)
53819 , p_source_24 => l_array_source_24(Idx)
53820 , p_source_25 => l_array_source_25(Idx)
53821 , p_source_26 => l_array_source_26(Idx)
53822 , p_source_27 => l_array_source_27(Idx)
53823 , p_source_28 => l_array_source_28(Idx)
53824 , p_source_31 => l_array_source_31(Idx)
53825 , p_source_43 => l_array_source_43(Idx)
53826 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
53827 , p_source_45 => l_array_source_45(Idx)
53828 , p_source_46 => l_array_source_46(Idx)
53829 , p_source_47 => l_array_source_47(Idx)
53830 );
53831 If(l_balance_type_code = 'A') THEN
53832 l_actual_gain_loss_ref := l_gain_or_loss_ref;
53833 END IF;
53834
53835 --
53836
53837 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
53838 -- or secondary ledger that has different currency with primary
53839 -- or alc that is calculated by sla
53840 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
53841 (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'))
53842
53843 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
53844 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
53845 AND (l_actual_flag = 'A')) THEN
53846 XLA_AE_LINES_PKG.CreateGainOrLossLines(
53847 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
53848 ,p_application_id => p_application_id
53849 ,p_amb_context_code => 'DEFAULT'
53850 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
53851 ,p_event_class_code => C_EVENT_CLASS_CODE
53852 ,p_event_type_code => C_EVENT_TYPE_CODE
53853
53854 ,p_gain_ccid => -1
53855 ,p_loss_ccid => -1
53856
53857 ,p_actual_flag => l_actual_flag
53858 ,p_enc_flag => null
53859 ,p_actual_g_l_ref => l_actual_gain_loss_ref
53860 ,p_enc_g_l_ref => null
53861 );
53862 END IF;
53863 END IF;
53864 END IF;
53865
53866 ELSE
53867 --
53868 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
53869 --
53870 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
53871 trace
53872 (p_msg => 'Trancaction revesal option is Y'
53873 ,p_level => C_LEVEL_STATEMENT
53874 ,p_module => l_log_module);
53875 END IF;
53876 END IF;
53877
53878 END LOOP;
53879 l_result := XLA_AE_LINES_PKG.InsertLines ;
53880 end loop;
53881 close line_cur;
53882
53883
53884 --
53885 -- insert headers into xla_ae_headers_gt table
53886 --
53887 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
53888
53889 -- insert into errors table here.
53890
53891 END LOOP;
53892
53893 --
53894 -- 4865292
53895 --
53896 -- Compare g_hdr_extract_count with event count in
53897 -- CreateHeadersAndLines.
53898 --
53899 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
53900
53901 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
53902 trace (p_msg => '# rows extracted from header extract objects '
53903 || ' (running total): '
53904 || g_hdr_extract_count
53905 ,p_level => C_LEVEL_STATEMENT
53906 ,p_module => l_log_module);
53907 END IF;
53908
53909 CLOSE header_cur;
53910 --
53911
53912 --
53913 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53914 trace
53915 (p_msg => 'END of EventClass_88'
53916 ,p_level => C_LEVEL_PROCEDURE
53917 ,p_module => l_log_module);
53918 END IF;
53919 --
53920 RETURN l_result;
53921 EXCEPTION
53922 WHEN xla_exceptions_pkg.application_exception THEN
53923
53924 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
53925
53926
53927 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
53928
53929 RAISE;
53930 WHEN OTHERS THEN
53931 xla_exceptions_pkg.raise_message
53932 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.EventClass_88');
53933 END EventClass_88;
53934 --
53935
53936 --
53937 --+============================================+
53938 --| |
53939 --| PRIVATE FUNCTION |
53940 --| |
53941 --+============================================+
53942 --
53943 FUNCTION CreateHeadersAndLines
53944 (p_application_id IN NUMBER
53945 ,p_base_ledger_id IN NUMBER
53946 ,p_target_ledger_id IN NUMBER
53947 ,p_pad_start_date IN DATE
53948 ,p_pad_end_date IN DATE
53949 ,p_primary_ledger_id IN NUMBER)
53950 RETURN BOOLEAN IS
53951 l_created BOOLEAN:=FALSE;
53952 l_event_id NUMBER;
53953 l_event_date DATE;
53954 l_language VARCHAR2(30);
53955 l_currency_code VARCHAR2(30);
53956 l_sla_ledger_id NUMBER;
53957 l_log_module VARCHAR2(240);
53958
53959 BEGIN
53960 --
53961 IF g_log_enabled THEN
53962 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
53963 END IF;
53964 --
53965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53966 trace
53967 (p_msg => 'BEGIN of CreateHeadersAndLines'
53968 ,p_level => C_LEVEL_PROCEDURE
53969 ,p_module => l_log_module);
53970 END IF;
53971
53972 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
53973 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
53974 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
53975
53976 --
53977 -- initialize array of lines with NULL
53978 --
53979 xla_ae_lines_pkg.SetNullLine;
53980
53981 --
53982 -- initialize header extract count -- Bug 4865292
53983 --
53984 g_hdr_extract_count:= 0;
53985
53986
53987 l_created := EventClass_86(
53988 p_application_id => p_application_id
53989 , p_base_ledger_id => p_base_ledger_id
53990 , p_target_ledger_id => p_target_ledger_id
53991 , p_language => l_language
53992 , p_currency_code => l_currency_code
53993 , p_sla_ledger_id => l_sla_ledger_id
53994 , p_pad_start_date => p_pad_start_date
53995 , p_pad_end_date => p_pad_end_date
53996 , p_primary_ledger_id => p_primary_ledger_id
53997 );
53998
53999
54000
54001 IF ( g_diagnostics_mode ='Y' ) THEN
54002
54003 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
54004 trace
54005 (p_msg => 'CALL Transaction Objects Diagnostics'
54006 ,p_level => C_LEVEL_STATEMENT
54007 ,p_module => l_log_module);
54008
54009 END IF;
54010
54011 insert_sources_86(
54012 p_target_ledger_id => p_target_ledger_id
54013 , p_language => l_language
54014 , p_sla_ledger_id => l_sla_ledger_id
54015 , p_pad_start_date => p_pad_start_date
54016 , p_pad_end_date => p_pad_end_date
54017 );
54018
54019 END IF;
54020
54021 l_created := EventClass_87(
54022 p_application_id => p_application_id
54023 , p_base_ledger_id => p_base_ledger_id
54024 , p_target_ledger_id => p_target_ledger_id
54025 , p_language => l_language
54026 , p_currency_code => l_currency_code
54027 , p_sla_ledger_id => l_sla_ledger_id
54028 , p_pad_start_date => p_pad_start_date
54029 , p_pad_end_date => p_pad_end_date
54030 , p_primary_ledger_id => p_primary_ledger_id
54031 );
54032
54033
54034
54035 IF ( g_diagnostics_mode ='Y' ) THEN
54036
54037 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
54038 trace
54039 (p_msg => 'CALL Transaction Objects Diagnostics'
54040 ,p_level => C_LEVEL_STATEMENT
54041 ,p_module => l_log_module);
54042
54043 END IF;
54044
54045 insert_sources_87(
54046 p_target_ledger_id => p_target_ledger_id
54047 , p_language => l_language
54048 , p_sla_ledger_id => l_sla_ledger_id
54049 , p_pad_start_date => p_pad_start_date
54050 , p_pad_end_date => p_pad_end_date
54051 );
54052
54053 END IF;
54054
54055 l_created := EventClass_88(
54056 p_application_id => p_application_id
54057 , p_base_ledger_id => p_base_ledger_id
54058 , p_target_ledger_id => p_target_ledger_id
54059 , p_language => l_language
54060 , p_currency_code => l_currency_code
54061 , p_sla_ledger_id => l_sla_ledger_id
54062 , p_pad_start_date => p_pad_start_date
54063 , p_pad_end_date => p_pad_end_date
54064 , p_primary_ledger_id => p_primary_ledger_id
54065 );
54066
54067
54068
54069 IF ( g_diagnostics_mode ='Y' ) THEN
54070
54071 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
54072 trace
54073 (p_msg => 'CALL Transaction Objects Diagnostics'
54074 ,p_level => C_LEVEL_STATEMENT
54075 ,p_module => l_log_module);
54076
54077 END IF;
54078
54079 insert_sources_88(
54080 p_target_ledger_id => p_target_ledger_id
54081 , p_language => l_language
54082 , p_sla_ledger_id => l_sla_ledger_id
54083 , p_pad_start_date => p_pad_start_date
54084 , p_pad_end_date => p_pad_end_date
54085 );
54086
54087 END IF;
54088
54089
54090 --
54091 -- Bug 4865292
54092 -- When the number of events and that of header extract do not match,
54093 -- set the no header extract flag to indicate there are some issues
54094 -- in header extract.
54095 --
54096 -- Event count context is set in xla_accounting_pkg.unit_processor.
54097 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
54098 -- to report it as a general error.
54099 --
54100 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
54101 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
54102
54103 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
54104 trace
54105 (p_msg => '# of extracted headers and events does not match'
54106 ,p_level => C_LEVEL_STATEMENT
54107 ,p_module => l_log_module);
54108
54109 trace
54110 (p_msg => '# of extracted headers: '
54111 ||g_hdr_extract_count
54112 ,p_level => C_LEVEL_STATEMENT
54113 ,p_module => l_log_module);
54114
54115 trace
54116 (p_msg => '# of events in xla_events_gt: '
54117 ||xla_context_pkg.get_event_count_context
54118 ,p_level => C_LEVEL_STATEMENT
54119 ,p_module => l_log_module);
54120
54121 trace
54122 (p_msg => 'Event No Header Extract Context: '
54123 ||xla_context_pkg.get_event_nohdr_context
54124 ,p_level => C_LEVEL_STATEMENT
54125 ,p_module => l_log_module);
54126
54127 END IF;
54128
54129
54130 xla_context_pkg.set_event_nohdr_context
54131 (p_nohdr_extract_flag => 'Y'
54132 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
54133
54134 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
54135 trace
54136 (p_msg => 'No Header Extract Flag is set to Y'
54137 ,p_level => C_LEVEL_STATEMENT
54138 ,p_module => l_log_module);
54139 END IF;
54140
54141 END IF;
54142
54143 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54144 trace
54145 (p_msg => 'END of CreateHeadersAndLines'
54146 ,p_level => C_LEVEL_PROCEDURE
54147 ,p_module => l_log_module);
54148 END IF;
54149
54150 RETURN l_created;
54151 EXCEPTION
54152 WHEN xla_exceptions_pkg.application_exception THEN
54153 RAISE;
54154 WHEN OTHERS THEN
54155 xla_exceptions_pkg.raise_message
54156 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.CreateHeadersAndLines');
54157 END CreateHeadersAndLines;
54158 --
54159 --
54160
54161 --
54162 --+============================================+
54163 --| |
54164 --| PUBLIC FUNCTION |
54165 --| |
54166 --+============================================+
54167 --
54168 FUNCTION CreateJournalEntries
54169 (p_application_id IN NUMBER
54170 ,p_base_ledger_id IN NUMBER
54171 ,p_pad_start_date IN DATE
54172 ,p_pad_end_date IN DATE
54173 ,p_primary_ledger_id IN NUMBER)
54174 RETURN NUMBER IS
54175 l_log_module VARCHAR2(240);
54176 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
54177 l_temp_result BOOLEAN;
54178 l_result NUMBER;
54179 BEGIN
54180 --
54181 IF g_log_enabled THEN
54182 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
54183 END IF;
54184 --
54185 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54186 trace
54187 (p_msg => 'BEGIN of CreateJournalEntries'||
54188 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
54189 ,p_level => C_LEVEL_PROCEDURE
54190 ,p_module => l_log_module);
54191
54192 END IF;
54193
54194 --
54195 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
54196
54197 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
54198 trace
54199 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
54200 ,p_level => C_LEVEL_STATEMENT
54201 ,p_module => l_log_module);
54202 END IF;
54203 --
54204 xla_ae_journal_entry_pkg.SetProductAcctDefinition
54205 (p_product_rule_code => 'FV_PURCHASING_AAD'
54206 ,p_product_rule_type_code => 'S'
54207 ,p_product_rule_version => ''
54208 ,p_product_rule_name => 'Federal Purchasing Application Accounting Definition'
54209 ,p_amb_context_code => 'DEFAULT'
54210 );
54211
54212 l_array_ledgers :=
54213 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
54214 (p_base_ledger_id => p_base_ledger_id);
54215
54216 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
54217 l_temp_result :=
54218 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
54219 (p_application_id => p_application_id
54220 ,p_base_ledger_id => p_base_ledger_id
54221 ,p_target_ledger_id => l_array_ledgers(Idx)
54222 ,p_primary_ledger_id => p_primary_ledger_id
54223 ,p_pad_start_date => p_pad_start_date
54224 ,p_pad_end_date => p_pad_end_date);
54225
54226 l_temp_result :=
54227 l_temp_result AND
54228 CreateHeadersAndLines
54229 (p_application_id => p_application_id
54230 ,p_base_ledger_id => p_base_ledger_id
54231 ,p_target_ledger_id => l_array_ledgers(Idx)
54232 ,p_pad_start_date => p_pad_start_date
54233 ,p_pad_end_date => p_pad_end_date
54234 ,p_primary_ledger_id => p_primary_ledger_id
54235 );
54236 END LOOP;
54237
54238
54239 IF (g_diagnostics_mode = 'Y' AND
54240 C_LEVEL_UNEXPECTED >= g_log_level AND
54241 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
54242
54243 xla_accounting_dump_pkg.acctg_event_extract_log(
54244 p_application_id => p_application_id
54245 ,p_request_id => xla_environment_pkg.g_Req_Id
54246 );
54247
54248 END IF;
54249
54250 CASE l_temp_result
54251 WHEN TRUE THEN l_result := 0;
54252 ELSE l_result := 2;
54253 END CASE;
54254
54255 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54256 trace
54257 (p_msg => 'return value. = '||TO_CHAR(l_result)
54258 ,p_level => C_LEVEL_PROCEDURE
54259 ,p_module => l_log_module);
54260 trace
54261 (p_msg => 'END of CreateJournalEntries '
54262 ,p_level => C_LEVEL_PROCEDURE
54263 ,p_module => l_log_module);
54264 END IF;
54265
54266 RETURN l_result;
54267 EXCEPTION
54268 WHEN xla_exceptions_pkg.application_exception THEN
54269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54270 trace
54271 (p_msg => 'ERROR. = '||sqlerrm
54272 ,p_level => C_LEVEL_PROCEDURE
54273 ,p_module => l_log_module);
54274 END IF;
54275 RAISE;
54276 WHEN OTHERS THEN
54277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54278 trace
54279 (p_msg => 'ERROR. = '||sqlerrm
54280 ,p_level => C_LEVEL_PROCEDURE
54281 ,p_module => l_log_module);
54282 END IF;
54283 xla_exceptions_pkg.raise_message
54284 (p_location => 'XLA_00201_AAD_S_000004_BC_PKG.CreateJournalEntries');
54285 END CreateJournalEntries;
54286 --
54287 --=============================================================================
54288 --
54289 --
54290 --
54291 --
54292 --
54293 --
54294 --
54295 --
54296 --
54297 --
54298 --
54299 --
54300 --
54301 --
54302 --
54303 --
54304 --
54305 --
54306 --
54307 --
54308 --
54309 --
54310 --=============================================================================
54311 --=============================================================================
54312 -- *********** Initialization routine **********
54313 --=============================================================================
54314
54315 BEGIN
54316 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
54317 g_log_enabled := fnd_log.test
54318 (log_level => g_log_level
54319 ,module => C_DEFAULT_MODULE);
54320
54321 IF NOT g_log_enabled THEN
54322 g_log_level := C_LEVEL_LOG_DISABLED;
54323 END IF;
54324 --
54325 END XLA_00201_AAD_S_000004_BC_PKG;
54326 --