[Home] [Help]
PACKAGE BODY: APPS.XLA_08901_AAD_S_000002_PKG
Source
1 PACKAGE BODY XLA_08901_AAD_S_000002_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_08901_AAD_S_000002_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : Federal Financials AAD |
14 | Code : FV_STANDARD_AAD |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 04-01-2007 at 02:01:47 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_08901_AAD_S_000002_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_08901_AAD_S_000002_PKG.trace');
109 END trace;
110
111 --
112 --+============================================+
113 --| |
114 --| PRIVATE PROCEDURES/FUNCTIONS |
115 --| |
116 --+============================================+
117 --
118
119 --
120 /*======================================================================+
121 | |
122 | Private Function |
123 | ValidateLookupMeaning |
124 | |
125 +======================================================================*/
126 FUNCTION ValidateLookupMeaning(
127 p_meaning IN VARCHAR2
128 , p_lookup_code IN VARCHAR2
129 , p_lookup_type IN VARCHAR2
130 , p_source_code IN VARCHAR2
131 , p_source_type_code IN VARCHAR2
132 , p_source_application_id IN INTEGER
133 )
134 RETURN VARCHAR2
135 IS
136 l_log_module VARCHAR2(240);
137 BEGIN
138 IF g_log_enabled THEN
139 l_log_module := C_DEFAULT_MODULE||'.ValidateLookupMeaning';
140 END IF;
141 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142 trace
143 (p_msg => 'BEGIN of ValidateLookupMeaning'
144 ,p_level => C_LEVEL_PROCEDURE
145 ,p_module => l_log_module);
146 END IF;
147 --
148 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
149 trace
150 (p_msg => 'p_source_code = '|| p_source_code||
151 ' - p_source_type_code = '|| p_source_type_code||
152 ' - p_source_application_id = '|| p_source_application_id||
153 ' - p_lookup_code = '|| p_lookup_code||
154 ' - p_lookup_type = '|| p_lookup_type||
155 ' - p_meaning = '|| p_meaning
156 ,p_level => C_LEVEL_PROCEDURE
157 ,p_module => l_log_module);
158
159 END IF;
160
161 IF p_lookup_code IS NOT NULL AND p_meaning IS NULL THEN
162 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
163 xla_accounting_err_pkg. build_message
164 (p_appli_s_name => 'XLA'
165 ,p_msg_name => 'XLA_AP_NO_LOOKUP_MEANING'
166 ,p_token_1 => 'SOURCE_NAME'
167 ,p_value_1 => xla_ae_sources_pkg.GetSourceName(
168 p_source_code
169 , p_source_type_code
170 , p_source_application_id
171 )
172 ,p_token_2 => 'LOOKUP_CODE'
173 ,p_value_2 => p_lookup_code
174 ,p_token_3 => 'LOOKUP_TYPE'
175 ,p_value_3 => p_lookup_type
176 ,p_token_4 => 'PRODUCT_NAME'
177 ,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
178 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
179 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
180 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
181 );
182
183 IF (C_LEVEL_ERROR >= g_log_level) THEN
184 trace
185 (p_msg => 'ERROR: XLA_AP_NO_LOOKUP_MEANING'
186 ,p_level => C_LEVEL_ERROR
187 ,p_module => l_log_module);
188 END IF;
189 END IF;
190
191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
192 trace
193 (p_msg => 'END of ValidateLookupMeaning'
194 ,p_level => C_LEVEL_PROCEDURE
195 ,p_module => l_log_module);
196 END IF;
197 RETURN p_meaning;
198 EXCEPTION
199 WHEN xla_exceptions_pkg.application_exception THEN
200 RETURN p_meaning;
201 WHEN OTHERS THEN
202 xla_exceptions_pkg.raise_message
203 (p_location => 'XLA_08901_AAD_S_000002_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_08901_AAD_S_000002_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 --FV_CHECK_NUMBER
241 , p_source_1 IN NUMBER
242 --FV_CHECK_DATE
243 , p_source_2 IN DATE
244 --FV_TREASURY_PAY_NUMBER
245 , p_source_3 IN NUMBER
246 )
247 RETURN VARCHAR2
248 IS
249 l_component_type VARCHAR2(80) ;
250 l_component_code VARCHAR2(30) ;
251 l_component_type_code VARCHAR2(1) ;
252 l_component_appl_id INTEGER ;
253 l_amb_context_code VARCHAR2(30) ;
254 l_ledger_language VARCHAR2(30) ;
255 l_source VARCHAR2(1996) ;
256 l_description VARCHAR2(2000) ;
257 l_log_module VARCHAR2(240) ;
258 BEGIN
259 IF g_log_enabled THEN
260 l_log_module := C_DEFAULT_MODULE||'.Description_1';
261 END IF;
262 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
263 trace
264 (p_msg => 'BEGIN of Description_1'
265 ,p_level => C_LEVEL_PROCEDURE
266 ,p_module => l_log_module);
267 END IF;
268
269 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
270 l_component_type := 'AMB_DESCRIPTION';
271 l_component_code := 'FV_TREASURY_DESC';
272 l_component_type_code := 'S';
273 l_component_appl_id := 8901;
274 l_amb_context_code := 'DEFAULT';
275 l_source := NULL;
276 l_description := NULL;
277
278
279
280 IF
281 l_ledger_language = 'US' THEN
282 l_description := SUBSTR(CONCAT(l_description,' Check Number:'),1,2000);
283 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
284 END IF;
285 l_source := SUBSTR(TO_CHAR(p_source_1),1,1996);
286 IF l_source IS NOT NULL THEN
287 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
288 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
289 END IF;
290 IF
291 l_ledger_language = 'US' THEN
292 l_description := SUBSTR(CONCAT(l_description,' Check Date:'),1,2000);
293 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
294 END IF;
295 l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_2,
296 xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
297 IF l_source IS NOT NULL THEN
298 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
299 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
300 END IF;
301 IF
302 l_ledger_language = 'US' THEN
303 l_description := SUBSTR(CONCAT(l_description,' Treasury Pay Number:'),1,2000);
304 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
305 END IF;
306 l_source := SUBSTR(TO_CHAR(p_source_3),1,1996);
307 IF l_source IS NOT NULL THEN
308 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
309 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
310 END IF;
311 l_description := SUBSTR(l_description,1,1996);
312 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
313 trace
314 (p_msg => 'END of Description_1'
315 ,p_level => C_LEVEL_PROCEDURE
316 ,p_module => l_log_module);
317
318 END IF;
319 RETURN l_description;
320
321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
322 trace
323 (p_msg => 'END of Description_1'
324 ,p_level => C_LEVEL_PROCEDURE
325 ,p_module => l_log_module);
326 END IF;
327 RETURN NULL;
328 EXCEPTION
329 WHEN VALUE_ERROR THEN
330 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
331 trace
332 (p_msg => 'ERROR: '||sqlerrm
333 ,p_level => C_LEVEL_EXCEPTION
334 ,p_module => l_log_module);
335 END IF;
336 RAISE;
337 WHEN xla_exceptions_pkg.application_exception THEN
338 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
339 trace
340 (p_msg => 'ERROR: '||sqlerrm
341 ,p_level => C_LEVEL_EXCEPTION
342 ,p_module => l_log_module);
343 END IF;
344 RAISE;
345 WHEN OTHERS THEN
346 xla_exceptions_pkg.raise_message
347 (p_location => 'XLA_08901_AAD_S_000002_PKG.Description_1');
348 END Description_1;
349
350 ---------------------------------------
351 --
352 -- PRIVATE FUNCTION
353 -- AcctDerRule_2
354 --
355 ---------------------------------------
356 FUNCTION AcctDerRule_2 (
357 p_application_id IN NUMBER
361 --FV_AP_CASH_ACCOUNT
358 , p_ae_header_id IN NUMBER
359 , p_side IN VARCHAR2
360 , p_override_seg_flag IN VARCHAR2
362 , p_source_4 IN NUMBER
363 --When to Account for Payment Option
364 , p_source_5 IN VARCHAR2
365 --FV_AP_CASH_CLEARING_CCID
366 , p_source_6 IN NUMBER
367 , x_transaction_coa_id OUT NOCOPY NUMBER
368 , x_accounting_coa_id OUT NOCOPY NUMBER
369 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
370 , x_flex_value_set_id OUT NOCOPY NUMBER
371 , x_value_type_code OUT NOCOPY VARCHAR2
372 , x_value_combination_id OUT NOCOPY NUMBER
373 , x_value_segment_code OUT NOCOPY VARCHAR2
374 )
375 RETURN VARCHAR2
376 IS
377 l_component_type VARCHAR2(80) ;
378 l_component_code VARCHAR2(30) ;
379 l_component_type_code VARCHAR2(1) ;
380 l_component_appl_id INTEGER ;
381 l_amb_context_code VARCHAR2(30) ;
382 l_log_module VARCHAR2(240) ;
383 l_output_value VARCHAR2(30) ;
384 BEGIN
385 IF g_log_enabled THEN
386 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_2';
387 END IF;
388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
389
390 trace
391 (p_msg => 'BEGIN of AcctDerRule_2'
392 ,p_level => C_LEVEL_PROCEDURE
393 ,p_module => l_log_module);
394
395 END IF;
396
397 l_component_type := 'AMB_ADR';
398 l_component_code := 'FV_INV_PMT_ACCOUNT_SEG';
399 l_component_type_code := 'S';
400 l_component_appl_id := 8901;
401 l_amb_context_code := 'DEFAULT';
402 x_transaction_coa_id := null;
403 x_accounting_coa_id := null;
404 x_flexfield_segment_code := 'GL_ACCOUNT';
405 x_flex_value_set_id := null ;
406
407
408 IF NVL(p_source_5,'
409 ') = 'ISSUE_ISSUE'
410 THEN
411 --
412 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
413
414 trace
415 (p_msg => 'END of AcctDerRule_2'
416 ,p_level => C_LEVEL_PROCEDURE
417 ,p_module => l_log_module);
418
419 END IF;
420 x_value_combination_id := TO_NUMBER(p_source_4) ;
421 x_value_segment_code := 'GL_ACCOUNT' ;
422 x_value_type_code := 'S';
423 l_output_value := null;
424 RETURN l_output_value;
425
426 ELSIF NVL(p_source_5,'
427 ') <> 'ISSUE_ISSUE'
428 THEN
429 --
430 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
431
432 trace
433 (p_msg => 'END of AcctDerRule_2'
434 ,p_level => C_LEVEL_PROCEDURE
435 ,p_module => l_log_module);
436
437 END IF;
438 x_value_combination_id := TO_NUMBER(p_source_6) ;
439 x_value_segment_code := 'GL_ACCOUNT' ;
440 x_value_type_code := 'S';
441 l_output_value := null;
442 RETURN l_output_value;
443
444 ELSE
445 IF p_override_seg_flag = 'Y' THEN
446 RETURN '#$NO_OVERRIDE#$';
447 END IF;
448 END IF;
449
450 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
451
452 trace
453 (p_msg => 'END of AcctDerRule_2(invalid)'
454 ,p_level => C_LEVEL_PROCEDURE
455 ,p_module => l_log_module);
456
457 END IF;
458
459 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
460 x_value_combination_id := null;
461 x_value_segment_code := null;
462 x_value_type_code := null;
463 l_output_value := null;
464 xla_accounting_err_pkg.build_message
465 (p_appli_s_name => 'XLA'
466 ,p_msg_name => 'XLA_AP_INVALID_ADR'
467 ,p_token_1 => 'COMPONENT_NAME'
468 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
469 l_component_type
470 , l_component_code
471 , l_component_type_code
472 , l_component_appl_id
473 , l_amb_context_code
474 )
475 ,p_token_2 => 'OWNER'
476 ,p_value_2 => xla_lookups_pkg.get_meaning(
477 'XLA_OWNER_TYPE'
478 ,l_component_type_code
479 )
480 ,p_token_3 => 'PAD_NAME'
481 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
482 ,p_token_4 => 'PAD_OWNER'
483 ,p_value_4 => xla_lookups_pkg.get_meaning(
484 'XLA_OWNER_TYPE'
485 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
486 )
487 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
488 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
489 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
490 ,p_ae_header_id => NULL
491 );
492 RETURN l_output_value;
493 EXCEPTION
494 WHEN xla_exceptions_pkg.application_exception THEN
495 RAISE;
499 END AcctDerRule_2;
496 WHEN OTHERS THEN
497 xla_exceptions_pkg.raise_message
498 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctDerRule_2');
500 --
501
502 ---------------------------------------
503 --
504 -- PRIVATE FUNCTION
505 -- AcctDerRule_3
506 --
507 ---------------------------------------
508 FUNCTION AcctDerRule_3 (
509 p_application_id IN NUMBER
510 , p_ae_header_id IN NUMBER
511 , p_side IN VARCHAR2
512 , p_override_seg_flag IN VARCHAR2
513 --DIT_CONFIRM_CASH_ACCOUNT
514 , p_source_7 IN VARCHAR2
515 , x_transaction_coa_id OUT NOCOPY NUMBER
516 , x_accounting_coa_id OUT NOCOPY NUMBER
517 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
518 , x_flex_value_set_id OUT NOCOPY NUMBER
519 , x_value_type_code OUT NOCOPY VARCHAR2
520 , x_value_combination_id OUT NOCOPY NUMBER
521 , x_value_segment_code OUT NOCOPY VARCHAR2
522 )
523 RETURN VARCHAR2
524 IS
525 l_component_type VARCHAR2(80) ;
526 l_component_code VARCHAR2(30) ;
527 l_component_type_code VARCHAR2(1) ;
528 l_component_appl_id INTEGER ;
529 l_amb_context_code VARCHAR2(30) ;
530 l_log_module VARCHAR2(240) ;
531 l_output_value VARCHAR2(30) ;
532 BEGIN
533 IF g_log_enabled THEN
534 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_3';
535 END IF;
536 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
537
538 trace
539 (p_msg => 'BEGIN of AcctDerRule_3'
540 ,p_level => C_LEVEL_PROCEDURE
541 ,p_module => l_log_module);
542
543 END IF;
544
545 l_component_type := 'AMB_ADR';
546 l_component_code := 'FV_TREASURY_CONFIRM_CASH_ACCT';
547 l_component_type_code := 'S';
548 l_component_appl_id := 8901;
549 l_amb_context_code := 'DEFAULT';
550 x_transaction_coa_id := null;
551 x_accounting_coa_id := null;
552 x_flexfield_segment_code := 'GL_ACCOUNT';
553 x_flex_value_set_id := null ;
554
555
556 --
557 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
558
559 trace
560 (p_msg => 'END of AcctDerRule_3'
561 ,p_level => C_LEVEL_PROCEDURE
562 ,p_module => l_log_module);
563
564 END IF;
565 x_value_combination_id := null ;
566 x_value_segment_code := null ;
567 x_value_type_code := 'S';
568 l_output_value := TO_CHAR(p_source_7);
569 RETURN l_output_value;
570
571
572 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
573
574 trace
575 (p_msg => 'END of AcctDerRule_3(invalid)'
576 ,p_level => C_LEVEL_PROCEDURE
577 ,p_module => l_log_module);
578
579 END IF;
580
581 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
582 x_value_combination_id := null;
583 x_value_segment_code := null;
584 x_value_type_code := null;
585 l_output_value := null;
586 xla_accounting_err_pkg.build_message
587 (p_appli_s_name => 'XLA'
588 ,p_msg_name => 'XLA_AP_INVALID_ADR'
589 ,p_token_1 => 'COMPONENT_NAME'
590 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
591 l_component_type
592 , l_component_code
593 , l_component_type_code
594 , l_component_appl_id
595 , l_amb_context_code
596 )
597 ,p_token_2 => 'OWNER'
598 ,p_value_2 => xla_lookups_pkg.get_meaning(
599 'XLA_OWNER_TYPE'
600 ,l_component_type_code
601 )
602 ,p_token_3 => 'PAD_NAME'
603 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
604 ,p_token_4 => 'PAD_OWNER'
605 ,p_value_4 => xla_lookups_pkg.get_meaning(
606 'XLA_OWNER_TYPE'
607 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
608 )
609 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
610 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
611 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
612 ,p_ae_header_id => NULL
613 );
614 RETURN l_output_value;
615 EXCEPTION
616 WHEN xla_exceptions_pkg.application_exception THEN
617 RAISE;
618 WHEN OTHERS THEN
619 xla_exceptions_pkg.raise_message
620 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctDerRule_3');
621 END AcctDerRule_3;
622 --
623
624 ---------------------------------------
625 --
626 -- PRIVATE FUNCTION
627 -- AcctDerRule_4
628 --
629 ---------------------------------------
633 , p_side IN VARCHAR2
630 FUNCTION AcctDerRule_4 (
631 p_application_id IN NUMBER
632 , p_ae_header_id IN NUMBER
634 , p_override_seg_flag IN VARCHAR2
635 --FV_INV_DIST_CCID
636 , p_source_8 IN NUMBER
637 --Automatic Offsets Value
638 , p_source_9 IN VARCHAR2
639 , p_source_9_meaning IN VARCHAR2
640 --FV_AP_LIABILITY_ACCOUNT
641 , p_source_10 IN NUMBER
642 , x_transaction_coa_id OUT NOCOPY NUMBER
643 , x_accounting_coa_id OUT NOCOPY NUMBER
644 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
645 , x_flex_value_set_id OUT NOCOPY NUMBER
646 , x_value_type_code OUT NOCOPY VARCHAR2
647 , x_value_combination_id OUT NOCOPY NUMBER
648 , x_value_segment_code OUT NOCOPY VARCHAR2
649 )
650 RETURN VARCHAR2
651 IS
652 l_component_type VARCHAR2(80) ;
653 l_component_code VARCHAR2(30) ;
654 l_component_type_code VARCHAR2(1) ;
655 l_component_appl_id INTEGER ;
656 l_amb_context_code VARCHAR2(30) ;
657 l_log_module VARCHAR2(240) ;
658 l_output_value VARCHAR2(30) ;
659 BEGIN
660 IF g_log_enabled THEN
661 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
662 END IF;
663 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
664
665 trace
666 (p_msg => 'BEGIN of AcctDerRule_4'
667 ,p_level => C_LEVEL_PROCEDURE
668 ,p_module => l_log_module);
669
670 END IF;
671
672 l_component_type := 'AMB_ADR';
673 l_component_code := 'FV_INV_PMT_BAL_SEG';
674 l_component_type_code := 'S';
675 l_component_appl_id := 8901;
676 l_amb_context_code := 'DEFAULT';
677 x_transaction_coa_id := null;
678 x_accounting_coa_id := null;
679 x_flexfield_segment_code := 'GL_BALANCING';
680 x_flex_value_set_id := null ;
681
682
683 IF NVL(p_source_9,'
684 ') = 'ACCOUNT_SEGMENT_VALUE' OR
685 NVL(p_source_9,'
686 ') = 'BALANCING_SEGMENT'
687 THEN
688 --
689 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
690
691 trace
692 (p_msg => 'END of AcctDerRule_4'
693 ,p_level => C_LEVEL_PROCEDURE
694 ,p_module => l_log_module);
695
696 END IF;
697 x_value_combination_id := TO_NUMBER(p_source_8) ;
698 x_value_segment_code := 'GL_BALANCING' ;
699 x_value_type_code := 'S';
700 l_output_value := null;
701 RETURN l_output_value;
702
703 ELSIF NVL(p_source_9,'
704 ') <> 'ACCOUNT_SEGMENT_VALUE' OR
705 NVL(p_source_9,'
706 ') <> 'BALANCING_SEGMENT'
707 THEN
708 --
709 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
710
711 trace
712 (p_msg => 'END of AcctDerRule_4'
713 ,p_level => C_LEVEL_PROCEDURE
714 ,p_module => l_log_module);
715
716 END IF;
717 x_value_combination_id := TO_NUMBER(p_source_10) ;
718 x_value_segment_code := 'GL_BALANCING' ;
719 x_value_type_code := 'S';
720 l_output_value := null;
721 RETURN l_output_value;
722
723 ELSE
724 IF p_override_seg_flag = 'Y' THEN
725 RETURN '#$NO_OVERRIDE#$';
726 END IF;
727 END IF;
728
729 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
730
731 trace
732 (p_msg => 'END of AcctDerRule_4(invalid)'
733 ,p_level => C_LEVEL_PROCEDURE
734 ,p_module => l_log_module);
735
736 END IF;
737
738 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
739 x_value_combination_id := null;
740 x_value_segment_code := null;
741 x_value_type_code := null;
742 l_output_value := null;
743 xla_accounting_err_pkg.build_message
744 (p_appli_s_name => 'XLA'
745 ,p_msg_name => 'XLA_AP_INVALID_ADR'
746 ,p_token_1 => 'COMPONENT_NAME'
747 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
748 l_component_type
749 , l_component_code
750 , l_component_type_code
751 , l_component_appl_id
752 , l_amb_context_code
753 )
754 ,p_token_2 => 'OWNER'
755 ,p_value_2 => xla_lookups_pkg.get_meaning(
756 'XLA_OWNER_TYPE'
757 ,l_component_type_code
758 )
759 ,p_token_3 => 'PAD_NAME'
760 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
761 ,p_token_4 => 'PAD_OWNER'
762 ,p_value_4 => xla_lookups_pkg.get_meaning(
763 'XLA_OWNER_TYPE'
764 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
765 )
769 ,p_ae_header_id => NULL
766 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
767 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
768 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
770 );
771 RETURN l_output_value;
772 EXCEPTION
773 WHEN xla_exceptions_pkg.application_exception THEN
774 RAISE;
775 WHEN OTHERS THEN
776 xla_exceptions_pkg.raise_message
777 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctDerRule_4');
778 END AcctDerRule_4;
779 --
780
781 ---------------------------------------
782 --
783 -- PRIVATE FUNCTION
784 -- AcctDerRule_5
785 --
786 ---------------------------------------
787 FUNCTION AcctDerRule_5 (
788 p_application_id IN NUMBER
789 , p_ae_header_id IN NUMBER
790 , p_side IN VARCHAR2
791 , p_override_seg_flag IN VARCHAR2
792 --FV_INV_TYPE_LOOKUP_CODE
793 , p_source_11 IN VARCHAR2
794 , x_transaction_coa_id OUT NOCOPY NUMBER
795 , x_accounting_coa_id OUT NOCOPY NUMBER
796 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
797 , x_flex_value_set_id OUT NOCOPY NUMBER
798 , x_value_type_code OUT NOCOPY VARCHAR2
799 , x_value_combination_id OUT NOCOPY NUMBER
800 , x_value_segment_code OUT NOCOPY VARCHAR2
801 )
802 RETURN VARCHAR2
803 IS
804 l_component_type VARCHAR2(80) ;
805 l_component_code VARCHAR2(30) ;
806 l_component_type_code VARCHAR2(1) ;
807 l_component_appl_id INTEGER ;
808 l_amb_context_code VARCHAR2(30) ;
809 l_log_module VARCHAR2(240) ;
810 l_output_value VARCHAR2(30) ;
811 BEGIN
812 IF g_log_enabled THEN
813 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
814 END IF;
815 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
816
817 trace
818 (p_msg => 'BEGIN of AcctDerRule_5'
819 ,p_level => C_LEVEL_PROCEDURE
820 ,p_module => l_log_module);
821
822 END IF;
823
824 l_component_type := 'AMB_ADR';
825 l_component_code := 'FV_4X0101_TREASURY_PAY_ACCT';
826 l_component_type_code := 'S';
827 l_component_appl_id := 8901;
828 l_amb_context_code := 'DEFAULT';
829 x_transaction_coa_id := null;
830 x_accounting_coa_id := null;
831 x_flexfield_segment_code := null;
832 x_flex_value_set_id := 1009988 ;
833
834
835 IF NVL(p_source_11,'
836 ') <> 'PREPAYMENT'
837 THEN
838 --
839 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
840
841 trace
842 (p_msg => 'END of AcctDerRule_5'
843 ,p_level => C_LEVEL_PROCEDURE
844 ,p_module => l_log_module);
845
846 END IF;
847 x_value_combination_id := null ;
848 x_value_segment_code := null ;
849 x_value_type_code := 'C';
850 l_output_value := '490101';
851 RETURN l_output_value;
852
853 ELSIF NVL(p_source_11,'
854 ') = 'PREPAYMENT'
855 THEN
856 --
857 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
858
859 trace
860 (p_msg => 'END of AcctDerRule_5'
861 ,p_level => C_LEVEL_PROCEDURE
862 ,p_module => l_log_module);
863
864 END IF;
865 x_value_combination_id := null ;
866 x_value_segment_code := null ;
867 x_value_type_code := 'C';
868 l_output_value := '480101';
869 RETURN l_output_value;
870
871 ELSE
872 IF p_override_seg_flag = 'Y' THEN
873 RETURN '#$NO_OVERRIDE#$';
874 END IF;
875 END IF;
876
877 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
878
879 trace
880 (p_msg => 'END of AcctDerRule_5(invalid)'
881 ,p_level => C_LEVEL_PROCEDURE
882 ,p_module => l_log_module);
883
884 END IF;
885
886 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
887 x_value_combination_id := null;
888 x_value_segment_code := null;
889 x_value_type_code := null;
890 l_output_value := null;
891 xla_accounting_err_pkg.build_message
892 (p_appli_s_name => 'XLA'
893 ,p_msg_name => 'XLA_AP_INVALID_ADR'
894 ,p_token_1 => 'COMPONENT_NAME'
895 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
896 l_component_type
897 , l_component_code
898 , l_component_type_code
899 , l_component_appl_id
900 , l_amb_context_code
901 )
902 ,p_token_2 => 'OWNER'
903 ,p_value_2 => xla_lookups_pkg.get_meaning(
904 'XLA_OWNER_TYPE'
905 ,l_component_type_code
906 )
907 ,p_token_3 => 'PAD_NAME'
908 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
909 ,p_token_4 => 'PAD_OWNER'
910 ,p_value_4 => xla_lookups_pkg.get_meaning(
914 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
911 'XLA_OWNER_TYPE'
912 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
913 )
915 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
916 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
917 ,p_ae_header_id => NULL
918 );
919 RETURN l_output_value;
920 EXCEPTION
921 WHEN xla_exceptions_pkg.application_exception THEN
922 RAISE;
923 WHEN OTHERS THEN
924 xla_exceptions_pkg.raise_message
925 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctDerRule_5');
926 END AcctDerRule_5;
927 --
928
929 ---------------------------------------
930 --
931 -- PRIVATE FUNCTION
932 -- AcctDerRule_6
933 --
934 ---------------------------------------
935 FUNCTION AcctDerRule_6 (
936 p_application_id IN NUMBER
937 , p_ae_header_id IN NUMBER
938 , p_side IN VARCHAR2
939 , p_override_seg_flag IN VARCHAR2
940 --FV_INV_TYPE_LOOKUP_CODE
941 , p_source_11 IN VARCHAR2
942 , x_transaction_coa_id OUT NOCOPY NUMBER
943 , x_accounting_coa_id OUT NOCOPY NUMBER
944 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
945 , x_flex_value_set_id OUT NOCOPY NUMBER
946 , x_value_type_code OUT NOCOPY VARCHAR2
947 , x_value_combination_id OUT NOCOPY NUMBER
948 , x_value_segment_code OUT NOCOPY VARCHAR2
949 )
950 RETURN VARCHAR2
951 IS
952 l_component_type VARCHAR2(80) ;
953 l_component_code VARCHAR2(30) ;
954 l_component_type_code VARCHAR2(1) ;
955 l_component_appl_id INTEGER ;
956 l_amb_context_code VARCHAR2(30) ;
957 l_log_module VARCHAR2(240) ;
958 l_output_value VARCHAR2(30) ;
959 BEGIN
960 IF g_log_enabled THEN
961 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
962 END IF;
963 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
964
965 trace
966 (p_msg => 'BEGIN of AcctDerRule_6'
967 ,p_level => C_LEVEL_PROCEDURE
968 ,p_module => l_log_module);
969
970 END IF;
971
972 l_component_type := 'AMB_ADR';
973 l_component_code := 'FV_4X0201_TREASURY_PAY_ACCT';
974 l_component_type_code := 'S';
975 l_component_appl_id := 8901;
976 l_amb_context_code := 'DEFAULT';
977 x_transaction_coa_id := null;
978 x_accounting_coa_id := null;
979 x_flexfield_segment_code := null;
980 x_flex_value_set_id := 1009988 ;
981
982
983 IF NVL(p_source_11,'
984 ') <> 'PREPAYMENT'
985 THEN
986 --
987 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
988
989 trace
990 (p_msg => 'END of AcctDerRule_6'
991 ,p_level => C_LEVEL_PROCEDURE
992 ,p_module => l_log_module);
993
994 END IF;
995 x_value_combination_id := null ;
996 x_value_segment_code := null ;
997 x_value_type_code := 'C';
998 l_output_value := '490201';
999 RETURN l_output_value;
1000
1001 ELSIF NVL(p_source_11,'
1002 ') = 'PREPAYMENT'
1003 THEN
1004 --
1005 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1006
1007 trace
1008 (p_msg => 'END of AcctDerRule_6'
1009 ,p_level => C_LEVEL_PROCEDURE
1010 ,p_module => l_log_module);
1011
1012 END IF;
1013 x_value_combination_id := null ;
1014 x_value_segment_code := null ;
1015 x_value_type_code := 'C';
1016 l_output_value := '480201';
1017 RETURN l_output_value;
1018
1019 ELSE
1020 IF p_override_seg_flag = 'Y' THEN
1021 RETURN '#$NO_OVERRIDE#$';
1022 END IF;
1023 END IF;
1024
1025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1026
1027 trace
1028 (p_msg => 'END of AcctDerRule_6(invalid)'
1029 ,p_level => C_LEVEL_PROCEDURE
1030 ,p_module => l_log_module);
1031
1032 END IF;
1033
1034 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1035 x_value_combination_id := null;
1036 x_value_segment_code := null;
1037 x_value_type_code := null;
1038 l_output_value := null;
1039 xla_accounting_err_pkg.build_message
1040 (p_appli_s_name => 'XLA'
1041 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1042 ,p_token_1 => 'COMPONENT_NAME'
1043 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1044 l_component_type
1045 , l_component_code
1046 , l_component_type_code
1047 , l_component_appl_id
1048 , l_amb_context_code
1049 )
1050 ,p_token_2 => 'OWNER'
1051 ,p_value_2 => xla_lookups_pkg.get_meaning(
1052 'XLA_OWNER_TYPE'
1053 ,l_component_type_code
1054 )
1055 ,p_token_3 => 'PAD_NAME'
1059 'XLA_OWNER_TYPE'
1056 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1057 ,p_token_4 => 'PAD_OWNER'
1058 ,p_value_4 => xla_lookups_pkg.get_meaning(
1060 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1061 )
1062 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1063 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1064 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1065 ,p_ae_header_id => NULL
1066 );
1067 RETURN l_output_value;
1068 EXCEPTION
1069 WHEN xla_exceptions_pkg.application_exception THEN
1070 RAISE;
1071 WHEN OTHERS THEN
1072 xla_exceptions_pkg.raise_message
1073 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctDerRule_6');
1074 END AcctDerRule_6;
1075 --
1076
1077 ---------------------------------------
1078 --
1079 -- PRIVATE FUNCTION
1080 -- AcctDerRule_7
1081 --
1082 ---------------------------------------
1083 FUNCTION AcctDerRule_7 (
1084 p_application_id IN NUMBER
1085 , p_ae_header_id IN NUMBER
1086 , p_side IN VARCHAR2
1087 --FV_INV_DIST_CCID
1088 , p_source_8 IN NUMBER
1089 , x_transaction_coa_id OUT NOCOPY NUMBER
1090 , x_accounting_coa_id OUT NOCOPY NUMBER
1091 , x_value_type_code OUT NOCOPY VARCHAR2
1092 )
1093 RETURN NUMBER
1094 IS
1095 l_component_type VARCHAR2(80) ;
1096 l_component_code VARCHAR2(30) ;
1097 l_component_type_code VARCHAR2(1) ;
1098 l_component_appl_id INTEGER ;
1099 l_amb_context_code VARCHAR2(30) ;
1100 l_log_module VARCHAR2(240) ;
1101 l_output_value NUMBER ;
1102 BEGIN
1103 IF g_log_enabled THEN
1104 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
1105 END IF;
1106 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1107 trace
1108 (p_msg => 'BEGIN of AcctDerRule_7'
1109 ,p_level => C_LEVEL_PROCEDURE
1110 ,p_module => l_log_module);
1111 END IF;
1112 --
1113 l_component_type := 'AMB_ADR';
1114 l_component_code := 'FV_INV_DIST_ACCOUNT';
1115 l_component_type_code := 'S';
1116 l_component_appl_id := 8901;
1117 l_amb_context_code := 'DEFAULT';
1118 x_transaction_coa_id := null;
1119 x_accounting_coa_id := null;
1120 --
1121
1122 --
1123 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1124 trace
1125 (p_msg => 'END of AcctDerRule_7'
1126 ,p_level => C_LEVEL_PROCEDURE
1127 ,p_module => l_log_module);
1128 END IF;
1129 x_value_type_code := 'S';
1130 l_output_value := TO_NUMBER(TO_NUMBER(p_source_8));
1131 RETURN l_output_value;
1132
1133 --
1134 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1135 trace
1136 (p_msg => 'END of AcctDerRule_7(invalid)'
1137 ,p_level => C_LEVEL_PROCEDURE
1138 ,p_module => l_log_module);
1139 END IF;
1140 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1141 x_value_type_code := null;
1142 l_output_value := null;
1143 xla_accounting_err_pkg.build_message
1144 (p_appli_s_name => 'XLA'
1145 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1146 ,p_token_1 => 'COMPONENT_NAME'
1147 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1148 l_component_type
1149 , l_component_code
1150 , l_component_type_code
1151 , l_component_appl_id
1152 , l_amb_context_code
1153 )
1154 ,p_token_2 => 'OWNER'
1155 ,p_value_2 => xla_lookups_pkg.get_meaning(
1156 'XLA_OWNER_TYPE'
1157 ,l_component_type_code
1158 )
1159 ,p_token_3 => 'PAD_NAME'
1160 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1161 ,p_token_4 => 'PAD_OWNER'
1162 ,p_value_4 => xla_lookups_pkg.get_meaning(
1163 'XLA_OWNER_TYPE'
1164 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1165 )
1166 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1167 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1168 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1169 ,p_ae_header_id => NULL
1170 );
1171 RETURN l_output_value;
1172 EXCEPTION
1173 WHEN xla_exceptions_pkg.application_exception THEN
1174 RAISE;
1175 WHEN OTHERS THEN
1176 xla_exceptions_pkg.raise_message
1177 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctDerRule_7');
1178 END AcctDerRule_7;
1179 --
1180
1181 ---------------------------------------
1182 --
1186 ---------------------------------------
1183 -- PRIVATE FUNCTION
1184 -- AcctDerRule_8
1185 --
1187 FUNCTION AcctDerRule_8 (
1188 p_application_id IN NUMBER
1189 , p_ae_header_id IN NUMBER
1190 , p_side IN VARCHAR2
1191 --FV_INV_DIST_CCID
1192 , p_source_8 IN NUMBER
1193 --Automatic Offsets Value
1194 , p_source_9 IN VARCHAR2
1195 , p_source_9_meaning IN VARCHAR2
1196 --FV_AP_LIABILITY_ACCOUNT
1197 , p_source_10 IN NUMBER
1198 , x_transaction_coa_id OUT NOCOPY NUMBER
1199 , x_accounting_coa_id OUT NOCOPY NUMBER
1200 , x_value_type_code OUT NOCOPY VARCHAR2
1201 )
1202 RETURN NUMBER
1203 IS
1204 l_component_type VARCHAR2(80) ;
1205 l_component_code VARCHAR2(30) ;
1206 l_component_type_code VARCHAR2(1) ;
1207 l_component_appl_id INTEGER ;
1208 l_amb_context_code VARCHAR2(30) ;
1209 l_log_module VARCHAR2(240) ;
1210 l_output_value NUMBER ;
1211 BEGIN
1212 IF g_log_enabled THEN
1213 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1214 END IF;
1215 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1216 trace
1217 (p_msg => 'BEGIN of AcctDerRule_8'
1218 ,p_level => C_LEVEL_PROCEDURE
1219 ,p_module => l_log_module);
1220 END IF;
1221 --
1222 l_component_type := 'AMB_ADR';
1223 l_component_code := 'FV_INV_PMT_ACCOUNT';
1224 l_component_type_code := 'S';
1225 l_component_appl_id := 8901;
1226 l_amb_context_code := 'DEFAULT';
1227 x_transaction_coa_id := null;
1228 x_accounting_coa_id := null;
1229 --
1230
1231 IF NVL(p_source_9,'
1232 ') = 'ACCOUNT_SEGMENT_VALUE'
1233 THEN
1234 --
1235 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1236 trace
1237 (p_msg => 'END of AcctDerRule_8'
1238 ,p_level => C_LEVEL_PROCEDURE
1239 ,p_module => l_log_module);
1240 END IF;
1241 x_value_type_code := 'S';
1242 l_output_value := TO_NUMBER(TO_NUMBER(p_source_8));
1243 RETURN l_output_value;
1244
1245 ELSIF NVL(p_source_9,'
1246 ') <> 'ACCOUNT_SEGMENT_VALUE'
1247 THEN
1248 --
1249 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1250 trace
1251 (p_msg => 'END of AcctDerRule_8'
1252 ,p_level => C_LEVEL_PROCEDURE
1253 ,p_module => l_log_module);
1254 END IF;
1255 x_value_type_code := 'S';
1256 l_output_value := TO_NUMBER(TO_NUMBER(p_source_10));
1257 RETURN l_output_value;
1258
1259 END IF;
1260 --
1261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1262 trace
1263 (p_msg => 'END of AcctDerRule_8(invalid)'
1264 ,p_level => C_LEVEL_PROCEDURE
1265 ,p_module => l_log_module);
1266 END IF;
1267 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1268 x_value_type_code := null;
1269 l_output_value := null;
1270 xla_accounting_err_pkg.build_message
1271 (p_appli_s_name => 'XLA'
1272 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1273 ,p_token_1 => 'COMPONENT_NAME'
1274 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1275 l_component_type
1276 , l_component_code
1277 , l_component_type_code
1278 , l_component_appl_id
1279 , l_amb_context_code
1280 )
1281 ,p_token_2 => 'OWNER'
1282 ,p_value_2 => xla_lookups_pkg.get_meaning(
1283 'XLA_OWNER_TYPE'
1284 ,l_component_type_code
1285 )
1286 ,p_token_3 => 'PAD_NAME'
1287 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1288 ,p_token_4 => 'PAD_OWNER'
1289 ,p_value_4 => xla_lookups_pkg.get_meaning(
1290 'XLA_OWNER_TYPE'
1291 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1292 )
1293 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1294 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1295 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1296 ,p_ae_header_id => NULL
1297 );
1298 RETURN l_output_value;
1299 EXCEPTION
1300 WHEN xla_exceptions_pkg.application_exception THEN
1301 RAISE;
1302 WHEN OTHERS THEN
1303 xla_exceptions_pkg.raise_message
1304 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctDerRule_8');
1305 END AcctDerRule_8;
1306 --
1307
1308 ---------------------------------------
1309 --
1310 -- PRIVATE FUNCTION
1311 -- AcctLineType_9
1312 --
1313 ---------------------------------------
1314 PROCEDURE AcctLineType_9 (
1315 p_application_id IN NUMBER
1316 ,p_event_id IN NUMBER
1317 ,p_calculate_acctd_flag IN VARCHAR2
1318 ,p_calculate_g_l_flag IN VARCHAR2
1319 ,p_actual_flag IN OUT VARCHAR2
1320 ,p_balance_type_code OUT VARCHAR2
1324 , p_source_1 IN NUMBER
1321 ,p_gain_or_loss_ref OUT VARCHAR2
1322
1323 --FV_CHECK_NUMBER
1325 --FV_CHECK_DATE
1326 , p_source_2 IN DATE
1327 --FV_TREASURY_PAY_NUMBER
1328 , p_source_3 IN NUMBER
1329 --FV_AP_CASH_ACCOUNT
1330 , p_source_4 IN NUMBER
1331 --When to Account for Payment Option
1332 , p_source_5 IN VARCHAR2
1333 --FV_AP_CASH_CLEARING_CCID
1334 , p_source_6 IN NUMBER
1335 --FV_INV_DIST_CCID
1336 , p_source_8 IN NUMBER
1337 --Automatic Offsets Value
1338 , p_source_9 IN VARCHAR2
1339 , p_source_9_meaning IN VARCHAR2
1340 --FV_AP_LIABILITY_ACCOUNT
1341 , p_source_10 IN NUMBER
1342 --TREASURY_CONFIRMATION_ID
1343 , p_source_13 IN NUMBER
1344 --FV_BUS_FLOW_FV_APP_ID
1345 , p_source_14 IN NUMBER
1346 --FV_BUS_FLOW_TREASURY_DIST_TYPE
1347 , p_source_15 IN VARCHAR2
1348 --FV_BUS_FLOW_TREAS_ENTITY_CODE
1349 , p_source_16 IN VARCHAR2
1350 --FV_PAY_HIST_DIST_ID
1351 , p_source_17 IN NUMBER
1352 --FV_TREASURY_CONFIRMATION_ID
1353 , p_source_18 IN NUMBER
1354 --FV_PAY_DIST_AMOUNT
1355 , p_source_19 IN NUMBER
1356 --FV_INV_CURRENCY_CODE
1357 , p_source_20 IN VARCHAR2
1358 --FV_INV_EXCHANGE_DATE
1359 , p_source_21 IN DATE
1360 --FV_INV_EXCHANGE_RATE
1361 , p_source_22 IN NUMBER
1362 --FV_INV_EXCHANGE_RATE_TYPE
1363 , p_source_23 IN VARCHAR2
1364 )
1365 IS
1366
1367 l_component_type VARCHAR2(80);
1368 l_component_code VARCHAR2(30);
1369 l_component_type_code VARCHAR2(1);
1370 l_component_appl_id INTEGER;
1371 l_amb_context_code VARCHAR2(30);
1372 l_entity_code VARCHAR2(30);
1373 l_event_class_code VARCHAR2(30);
1374 l_ae_header_id NUMBER;
1375 l_event_type_code VARCHAR2(30);
1376 l_line_definition_code VARCHAR2(30);
1377 l_line_definition_owner_code VARCHAR2(1);
1378 --
1379 -- adr variables
1380 l_segment VARCHAR2(30);
1381 l_ccid NUMBER;
1382 l_adr_transaction_coa_id NUMBER;
1383 l_adr_accounting_coa_id NUMBER;
1384 l_adr_flexfield_segment_code VARCHAR2(30);
1385 l_adr_flex_value_set_id NUMBER;
1386 l_adr_value_type_code VARCHAR2(30);
1387 l_adr_value_combination_id NUMBER;
1388 l_adr_value_segment_code VARCHAR2(30);
1389
1390 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
1391 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
1392 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
1393 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
1394
1395 -- 4262811 Variables ------------------------------------------------------------------------------------------
1396 l_entered_amt_idx NUMBER;
1397 l_accted_amt_idx NUMBER;
1398 l_acc_rev_flag VARCHAR2(1);
1399 l_accrual_line_num NUMBER;
1400 l_tmp_amt NUMBER;
1401 l_acc_rev_natural_side_code VARCHAR2(1);
1402
1403 l_num_entries NUMBER;
1404 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
1405 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
1406 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
1407 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
1408 l_recog_line_1 NUMBER;
1409 l_recog_line_2 NUMBER;
1410
1411 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
1412 l_bflow_applied_to_amt NUMBER; -- 5132302
1413 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
1414
1415 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
1416
1417 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
1418 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
1419
1420 ---------------------------------------------------------------------------------------------------------------
1421
1422
1423 --
1424 -- bulk performance
1425 --
1426 l_balance_type_code VARCHAR2(1);
1427 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
1428 l_log_module VARCHAR2(240);
1429
1430 --
1431 -- Upgrade strategy
1432 --
1433 l_actual_upg_option VARCHAR2(1);
1434 l_enc_upg_option VARCHAR2(1);
1435
1436 --
1437 BEGIN
1438 --
1439 IF g_log_enabled THEN
1440 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_9';
1441 END IF;
1442 --
1443 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1444
1445 trace
1446 (p_msg => 'BEGIN of AcctLineType_9'
1447 ,p_level => C_LEVEL_PROCEDURE
1448 ,p_module => l_log_module);
1449
1450 END IF;
1451 --
1452 l_component_type := 'AMB_JLT';
1453 l_component_code := 'FV_TC_CASH_ACCT_DR';
1454 l_component_type_code := 'S';
1455 l_component_appl_id := 8901;
1456 l_amb_context_code := 'DEFAULT';
1457 l_entity_code := 'TREASURY_CONFIRMATION';
1458 l_event_class_code := 'TREASURY_ACCOMPLISHMENT';
1459 l_event_type_code := 'TREASURY_ACCOMPLISHMENT_ALL';
1460 l_line_definition_owner_code := 'S';
1461 l_line_definition_code := 'FV_TREASURY_PAYMENTS_ALL';
1462 --
1463 l_balance_type_code := 'A';
1464 l_segment := NULL;
1465 l_ccid := NULL;
1466 l_adr_transaction_coa_id := NULL;
1470 l_adr_value_type_code := NULL;
1467 l_adr_accounting_coa_id := NULL;
1468 l_adr_flexfield_segment_code := NULL;
1469 l_adr_flex_value_set_id := NULL;
1471 l_adr_value_combination_id := NULL;
1472 l_adr_value_segment_code := NULL;
1473
1474 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
1475 l_bflow_class_code := 'FV_TC_PAYMENT_DR'; -- 4219869 Business Flow
1476 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
1477 l_budgetary_control_flag := 'N';
1478
1479 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1480 l_bflow_applied_to_amt := NULL; -- 5132302
1481 l_entered_amt_idx := NULL; -- 4262811
1482 l_accted_amt_idx := NULL; -- 4262811
1483 l_acc_rev_flag := NULL; -- 4262811
1484 l_accrual_line_num := NULL; -- 4262811
1485 l_tmp_amt := NULL; -- 4262811
1486 --
1487
1488 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
1489 l_balance_type_code <> 'B' THEN
1490 IF NVL(
1491 xla_ae_sources_pkg.GetSystemSourceChar(
1492 p_source_code => 'XLA_EVENT_TYPE_CODE'
1493 , p_source_type_code => 'Y'
1494 , p_source_application_id => 602
1495 ),'
1496 ') = 'TREASURY_CONFIRM' AND
1497 p_source_13 IS NOT NULL
1498 THEN
1499
1500 --
1501 XLA_AE_LINES_PKG.SetNewLine;
1502
1503 p_balance_type_code := l_balance_type_code;
1504 -- set the flag so later we will know whether the gain loss line needs to be created
1505
1506 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
1507 p_actual_flag :='A';
1508 END IF;
1509
1510 --
1511 -- bulk performance
1512 --
1513 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
1514 p_header_num => 0); -- 4262811
1515 --
1516 -- set accounting line options
1517 --
1518 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
1519 p_natural_side_code => 'D'
1520 , p_gain_or_loss_flag => 'N'
1521 , p_gl_transfer_mode_code => 'S'
1522 , p_acct_entry_type_code => 'A'
1523 , p_switch_side_flag => 'N'
1524 , p_merge_duplicate_code => 'N'
1525 );
1526 --
1527 l_acc_rev_natural_side_code := 'C'; -- 4262811
1528 --
1529 --
1530 -- set accounting line type info
1531 --
1532 xla_ae_lines_pkg.SetAcctLineType
1533 (p_component_type => l_component_type
1534 ,p_event_type_code => l_event_type_code
1535 ,p_line_definition_owner_code => l_line_definition_owner_code
1536 ,p_line_definition_code => l_line_definition_code
1537 ,p_accounting_line_code => l_component_code
1538 ,p_accounting_line_type_code => l_component_type_code
1539 ,p_accounting_line_appl_id => l_component_appl_id
1540 ,p_amb_context_code => l_amb_context_code
1541 ,p_entity_code => l_entity_code
1542 ,p_event_class_code => l_event_class_code);
1543 --
1544 -- set accounting class
1545 --
1546 xla_ae_lines_pkg.SetAcctClass(
1547 p_accounting_class_code => 'ACCOUNTSPAYABLE'
1548 , p_ae_header_id => l_ae_header_id
1549 );
1550
1551 --
1552 -- set rounding class
1553 --
1554 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
1555 'ACCOUNTSPAYABLE';
1556
1557 --
1558 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
1559 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
1560 --
1561 -- bulk performance
1562 --
1563 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
1564
1565 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
1566 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
1567
1568 -- 4955764
1569 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
1570 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
1571
1572 -- 4458381 Public Sector Enh
1573
1574 --
1575 -- set accounting attributes for the line type
1576 --
1577 l_entered_amt_idx := 8;
1578 l_accted_amt_idx := 13;
1579 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1580 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
1581 l_rec_acct_attrs.array_num_value(1) := p_source_14;
1582 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
1583 l_rec_acct_attrs.array_char_value(2) := p_source_15;
1584 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
1585 l_rec_acct_attrs.array_char_value(3) := p_source_16;
1586 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
1587 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_17);
1588 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
1589 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_18);
1590 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
1591 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_17);
1592 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
1593 l_rec_acct_attrs.array_char_value(7) := p_source_15;
1594 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
1595 l_rec_acct_attrs.array_num_value(8) := p_source_19;
1596 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
1600 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
1597 l_rec_acct_attrs.array_char_value(9) := p_source_20;
1598 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
1599 l_rec_acct_attrs.array_date_value(10) := p_source_21;
1601 l_rec_acct_attrs.array_num_value(11) := p_source_22;
1602 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
1603 l_rec_acct_attrs.array_char_value(12) := p_source_23;
1604 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
1605 l_rec_acct_attrs.array_num_value(13) := p_source_19;
1606
1607 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
1608 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
1609
1610 ---------------------------------------------------------------------------------------------------------------
1611 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
1612 ---------------------------------------------------------------------------------------------------------------
1613 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
1614
1615 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1616 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1617
1618 IF xla_accounting_cache_pkg.GetValueChar
1619 (p_source_code => 'LEDGER_CATEGORY_CODE'
1620 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
1621 AND l_bflow_method_code = 'PRIOR_ENTRY'
1622 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
1623 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
1624 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
1625 )
1626 THEN
1627 xla_ae_lines_pkg.BflowUpgEntry
1628 (p_business_method_code => l_bflow_method_code
1629 ,p_business_class_code => l_bflow_class_code
1630 ,p_balance_type => l_balance_type_code);
1631 ELSE
1632 NULL;
1633 -- No business flow processing for business flow method of NONE.
1634 END IF;
1635
1636 --
1637 -- call description
1638 --
1639
1640 xla_ae_lines_pkg.SetLineDescription(
1641 p_ae_header_id => l_ae_header_id
1642 ,p_description => Description_1 (
1643 p_application_id => p_application_id
1644 , p_ae_header_id => l_ae_header_id
1645 , p_source_1 => p_source_1
1646 , p_source_2 => p_source_2
1647 , p_source_3 => p_source_3
1648 )
1649 );
1650
1651
1652 --
1653 -- call ADRs
1654 -- Bug 4922099
1655 --
1656 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
1657 (NVL(l_actual_upg_option, 'N') = 'O') OR
1658 (NVL(l_enc_upg_option, 'N') = 'O')
1659 )
1660 THEN
1661 NULL;
1662 --
1663 --
1664
1665 l_ccid := AcctDerRule_8(
1666 p_application_id => p_application_id
1667 , p_ae_header_id => l_ae_header_id
1668 , p_source_8 => p_source_8
1669 , p_source_9 => p_source_9
1670 , p_source_9_meaning => p_source_9_meaning
1671 , p_source_10 => p_source_10
1672 , x_transaction_coa_id => l_adr_transaction_coa_id
1673 , x_accounting_coa_id => l_adr_accounting_coa_id
1674 , x_value_type_code => l_adr_value_type_code
1675 , p_side => 'NA'
1676 );
1677
1678 xla_ae_lines_pkg.set_ccid(
1679 p_code_combination_id => l_ccid
1680 , p_value_type_code => l_adr_value_type_code
1681 , p_transaction_coa_id => l_adr_transaction_coa_id
1682 , p_accounting_coa_id => l_adr_accounting_coa_id
1683 , p_adr_code => 'FV_INV_PMT_ACCOUNT'
1684 , p_adr_type_code => 'S'
1685 , p_component_type => l_component_type
1686 , p_component_code => l_component_code
1687 , p_component_type_code => l_component_type_code
1688 , p_component_appl_id => l_component_appl_id
1689 , p_amb_context_code => l_amb_context_code
1690 , p_side => 'NA'
1691 );
1692
1693
1694 l_segment := AcctDerRule_2(
1695 p_application_id => p_application_id
1696 , p_ae_header_id => l_ae_header_id
1697 , p_source_4 => p_source_4
1698 , p_source_5 => p_source_5
1699 , p_source_6 => p_source_6
1700 , x_transaction_coa_id => l_adr_transaction_coa_id
1701 , x_accounting_coa_id => l_adr_accounting_coa_id
1702 , x_flexfield_segment_code => l_adr_flexfield_segment_code
1703 , x_flex_value_set_id => l_adr_flex_value_set_id
1704 , x_value_type_code => l_adr_value_type_code
1705 , x_value_combination_id => l_adr_value_combination_id
1706 , x_value_segment_code => l_adr_value_segment_code
1707 , p_side => 'NA'
1708 , p_override_seg_flag => 'Y'
1709 );
1710
1711 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
1712
1713 xla_ae_lines_pkg.set_segment(
1714 p_to_segment_code => 'GL_ACCOUNT'
1715 , p_segment_value => l_segment
1716 , p_from_segment_code => l_adr_value_segment_code
1717 , p_from_combination_id => l_adr_value_combination_id
1718 , p_value_type_code => l_adr_value_type_code
1719 , p_transaction_coa_id => l_adr_transaction_coa_id
1720 , p_accounting_coa_id => l_adr_accounting_coa_id
1721 , p_flexfield_segment_code => l_adr_flexfield_segment_code
1722 , p_flex_value_set_id => l_adr_flex_value_set_id
1726 , p_component_code => l_component_code
1723 , p_adr_code => 'FV_INV_PMT_ACCOUNT_SEG'
1724 , p_adr_type_code => 'S'
1725 , p_component_type => l_component_type
1727 , p_component_type_code => l_component_type_code
1728 , p_component_appl_id => l_component_appl_id
1729 , p_amb_context_code => l_amb_context_code
1730 , p_entity_code => 'TREASURY_CONFIRMATION'
1731 , p_event_class_code => 'TREASURY_ACCOMPLISHMENT'
1732 , p_side => 'NA'
1733 );
1734
1735 END IF;
1736
1737 l_segment := AcctDerRule_4(
1738 p_application_id => p_application_id
1739 , p_ae_header_id => l_ae_header_id
1740 , p_source_8 => p_source_8
1741 , p_source_9 => p_source_9
1742 , p_source_9_meaning => p_source_9_meaning
1743 , p_source_10 => p_source_10
1744 , x_transaction_coa_id => l_adr_transaction_coa_id
1745 , x_accounting_coa_id => l_adr_accounting_coa_id
1746 , x_flexfield_segment_code => l_adr_flexfield_segment_code
1747 , x_flex_value_set_id => l_adr_flex_value_set_id
1748 , x_value_type_code => l_adr_value_type_code
1749 , x_value_combination_id => l_adr_value_combination_id
1750 , x_value_segment_code => l_adr_value_segment_code
1751 , p_side => 'NA'
1752 , p_override_seg_flag => 'Y'
1753 );
1754
1755 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
1756
1757 xla_ae_lines_pkg.set_segment(
1758 p_to_segment_code => 'GL_BALANCING'
1759 , p_segment_value => l_segment
1760 , p_from_segment_code => l_adr_value_segment_code
1761 , p_from_combination_id => l_adr_value_combination_id
1762 , p_value_type_code => l_adr_value_type_code
1763 , p_transaction_coa_id => l_adr_transaction_coa_id
1764 , p_accounting_coa_id => l_adr_accounting_coa_id
1765 , p_flexfield_segment_code => l_adr_flexfield_segment_code
1766 , p_flex_value_set_id => l_adr_flex_value_set_id
1767 , p_adr_code => 'FV_INV_PMT_BAL_SEG'
1768 , p_adr_type_code => 'S'
1769 , p_component_type => l_component_type
1770 , p_component_code => l_component_code
1771 , p_component_type_code => l_component_type_code
1772 , p_component_appl_id => l_component_appl_id
1773 , p_amb_context_code => l_amb_context_code
1774 , p_entity_code => 'TREASURY_CONFIRMATION'
1775 , p_event_class_code => 'TREASURY_ACCOMPLISHMENT'
1776 , p_side => 'NA'
1777 );
1778
1779 END IF;
1780
1781 --
1782 --
1783 END IF;
1784 --
1785 -- Bug 4922099
1786 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
1787 (NVL(l_enc_upg_option, 'N') = 'O')
1788 ) AND
1789 (l_bflow_method_code = 'PRIOR_ENTRY')
1790 )
1791 THEN
1792 IF
1793 --
1794 1 = 2
1795 --
1796 THEN
1797 xla_accounting_err_pkg.build_message
1798 (p_appli_s_name => 'XLA'
1799 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1800 ,p_token_1 => 'LINE_NUMBER'
1801 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
1802 ,p_token_2 => 'LINE_TYPE_NAME'
1803 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
1804 l_component_type
1805 ,l_component_code
1806 ,l_component_type_code
1807 ,l_component_appl_id
1808 ,l_amb_context_code
1809 ,l_entity_code
1810 ,l_event_class_code
1811 )
1812 ,p_token_3 => 'OWNER'
1813 ,p_value_3 => xla_lookups_pkg.get_meaning(
1814 p_lookup_type => 'XLA_OWNER_TYPE'
1815 ,p_lookup_code => l_component_type_code
1816 )
1817 ,p_token_4 => 'PRODUCT_NAME'
1818 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
1819 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
1820 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
1821 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
1822 ,p_ae_header_id => NULL
1823 );
1824
1825 IF (C_LEVEL_ERROR>= g_log_level) THEN
1826 trace
1827 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1828 ,p_level => C_LEVEL_ERROR
1829 ,p_module => l_log_module);
1830 END IF;
1834 --
1831 END IF;
1832 END IF;
1833 --
1835 ------------------------------------------------------------------------------------------------
1836 -- 4219869 Business Flow
1837 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
1838 -- Prior Entry. Currently, the following code is always generated.
1839 ------------------------------------------------------------------------------------------------
1840 XLA_AE_LINES_PKG.ValidateCurrentLine;
1841
1842 ------------------------------------------------------------------------------------
1843 -- 4219869 Business Flow
1844 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
1845 ------------------------------------------------------------------------------------
1846 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
1847
1848 ----------------------------------------------------------------------------------
1849 -- 4219869 Business Flow
1850 -- Update journal entry status -- Need to generate this within IF <condition>
1851 ----------------------------------------------------------------------------------
1852 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
1853 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
1854 ,p_balance_type_code => l_balance_type_code
1855 );
1856
1857 -------------------------------------------------------------------------------------------
1858 -- 4262811 - Generate the Accrual Reversal lines
1859 -------------------------------------------------------------------------------------------
1860 BEGIN
1861 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
1862 (g_array_event(p_event_id).array_value_num('header_index'));
1863 IF l_acc_rev_flag IS NULL THEN
1864 l_acc_rev_flag := 'N';
1865 END IF;
1866 EXCEPTION
1867 WHEN OTHERS THEN
1868 l_acc_rev_flag := 'N';
1869 END;
1870 --
1871 IF (l_acc_rev_flag = 'Y') THEN
1872
1873 -- 4645092 ------------------------------------------------------------------------------
1874 -- To allow MPA report to determine if it should generate report process
1875 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
1876 ------------------------------------------------------------------------------------------
1877
1878 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
1879 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
1880
1881 --
1882 -- Update the line information that should be overwritten
1883 --
1884 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
1885 p_header_num => 1);
1886 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
1887
1888 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
1889
1890 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
1891 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
1892 END IF;
1893
1894 --
1895 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
1896 --
1897 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
1898 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
1899 ELSE
1900 ---------------------------------------------------------------------------------------------------
1901 -- 4262811a Switch Sign
1902 ---------------------------------------------------------------------------------------------------
1903 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
1904 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
1905 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1906 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
1907 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1908 -- 5132302
1909 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
1910 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1911
1912 END IF;
1913
1914 -- 4955764
1915 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
1916 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
1917
1918
1919 XLA_AE_LINES_PKG.ValidateCurrentLine;
1920 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
1921
1922 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
1923 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
1924 ,p_balance_type_code => l_balance_type_code);
1925
1926 END IF;
1927
1928 -----------------------------------------------------------------------------------------
1929 -- 4262811 Multiperiod Accounting
1930 -----------------------------------------------------------------------------------------
1931 -- No MPA option is assigned.
1932
1933
1934 END IF;
1935 END IF;
1936 --
1937
1938 --
1939 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1940 trace
1941 (p_msg => 'END of AcctLineType_9'
1942 ,p_level => C_LEVEL_PROCEDURE
1943 ,p_module => l_log_module);
1944 END IF;
1945 --
1946 EXCEPTION
1947 WHEN xla_exceptions_pkg.application_exception THEN
1948 RAISE;
1949 WHEN OTHERS THEN
1953 --
1950 xla_exceptions_pkg.raise_message
1951 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctLineType_9');
1952 END AcctLineType_9;
1954
1955 ---------------------------------------
1956 --
1957 -- PRIVATE FUNCTION
1958 -- AcctLineType_10
1959 --
1960 ---------------------------------------
1961 PROCEDURE AcctLineType_10 (
1962 p_application_id IN NUMBER
1963 ,p_event_id IN NUMBER
1964 ,p_calculate_acctd_flag IN VARCHAR2
1965 ,p_calculate_g_l_flag IN VARCHAR2
1966 ,p_actual_flag IN OUT VARCHAR2
1967 ,p_balance_type_code OUT VARCHAR2
1968 ,p_gain_or_loss_ref OUT VARCHAR2
1969
1970 --FV_BUS_FLOW_FV_APP_ID
1971 , p_source_14 IN NUMBER
1972 --FV_BUS_FLOW_TREASURY_DIST_TYPE
1973 , p_source_15 IN VARCHAR2
1974 --FV_BUS_FLOW_TREAS_ENTITY_CODE
1975 , p_source_16 IN VARCHAR2
1976 --FV_PAY_HIST_DIST_ID
1977 , p_source_17 IN NUMBER
1978 --FV_TREASURY_CONFIRMATION_ID
1979 , p_source_18 IN NUMBER
1980 --FV_PAY_DIST_AMOUNT
1981 , p_source_19 IN NUMBER
1982 --FV_INV_CURRENCY_CODE
1983 , p_source_20 IN VARCHAR2
1984 --FV_REV_PAY_HIST_DIST_ID
1985 , p_source_24 IN NUMBER
1986 )
1987 IS
1988
1989 l_component_type VARCHAR2(80);
1990 l_component_code VARCHAR2(30);
1991 l_component_type_code VARCHAR2(1);
1992 l_component_appl_id INTEGER;
1993 l_amb_context_code VARCHAR2(30);
1994 l_entity_code VARCHAR2(30);
1995 l_event_class_code VARCHAR2(30);
1996 l_ae_header_id NUMBER;
1997 l_event_type_code VARCHAR2(30);
1998 l_line_definition_code VARCHAR2(30);
1999 l_line_definition_owner_code VARCHAR2(1);
2000 --
2001 -- adr variables
2002 l_segment VARCHAR2(30);
2003 l_ccid NUMBER;
2004 l_adr_transaction_coa_id NUMBER;
2005 l_adr_accounting_coa_id NUMBER;
2006 l_adr_flexfield_segment_code VARCHAR2(30);
2007 l_adr_flex_value_set_id NUMBER;
2008 l_adr_value_type_code VARCHAR2(30);
2009 l_adr_value_combination_id NUMBER;
2010 l_adr_value_segment_code VARCHAR2(30);
2011
2012 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
2013 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
2014 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
2015 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
2016
2017 -- 4262811 Variables ------------------------------------------------------------------------------------------
2018 l_entered_amt_idx NUMBER;
2019 l_accted_amt_idx NUMBER;
2020 l_acc_rev_flag VARCHAR2(1);
2021 l_accrual_line_num NUMBER;
2022 l_tmp_amt NUMBER;
2023 l_acc_rev_natural_side_code VARCHAR2(1);
2024
2025 l_num_entries NUMBER;
2026 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
2027 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
2028 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
2029 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
2030 l_recog_line_1 NUMBER;
2031 l_recog_line_2 NUMBER;
2032
2033 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
2034 l_bflow_applied_to_amt NUMBER; -- 5132302
2035 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
2036
2037 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2038
2039 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
2040 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
2041
2042 ---------------------------------------------------------------------------------------------------------------
2043
2044
2045 --
2046 -- bulk performance
2047 --
2048 l_balance_type_code VARCHAR2(1);
2049 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2050 l_log_module VARCHAR2(240);
2051
2052 --
2053 -- Upgrade strategy
2054 --
2055 l_actual_upg_option VARCHAR2(1);
2056 l_enc_upg_option VARCHAR2(1);
2057
2058 --
2059 BEGIN
2060 --
2061 IF g_log_enabled THEN
2062 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_10';
2063 END IF;
2064 --
2065 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2066
2067 trace
2068 (p_msg => 'BEGIN of AcctLineType_10'
2069 ,p_level => C_LEVEL_PROCEDURE
2070 ,p_module => l_log_module);
2071
2072 END IF;
2073 --
2074 l_component_type := 'AMB_JLT';
2075 l_component_code := 'FV_TC_CASH_ACCT_REV_CR';
2076 l_component_type_code := 'S';
2077 l_component_appl_id := 8901;
2078 l_amb_context_code := 'DEFAULT';
2079 l_entity_code := 'TREASURY_CONFIRMATION';
2080 l_event_class_code := 'TREASURY_ACCOMPLISHMENT';
2081 l_event_type_code := 'TREASURY_ACCOMPLISHMENT_ALL';
2082 l_line_definition_owner_code := 'S';
2083 l_line_definition_code := 'FV_TREASURY_PAYMENTS_ALL';
2084 --
2085 l_balance_type_code := 'A';
2086 l_segment := NULL;
2087 l_ccid := NULL;
2088 l_adr_transaction_coa_id := NULL;
2089 l_adr_accounting_coa_id := NULL;
2090 l_adr_flexfield_segment_code := NULL;
2091 l_adr_flex_value_set_id := NULL;
2092 l_adr_value_type_code := NULL;
2093 l_adr_value_combination_id := NULL;
2094 l_adr_value_segment_code := NULL;
2095
2099 l_budgetary_control_flag := 'N';
2096 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
2097 l_bflow_class_code := 'FV_TC_PAYMENT_DR'; -- 4219869 Business Flow
2098 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
2100
2101 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2102 l_bflow_applied_to_amt := NULL; -- 5132302
2103 l_entered_amt_idx := NULL; -- 4262811
2104 l_accted_amt_idx := NULL; -- 4262811
2105 l_acc_rev_flag := NULL; -- 4262811
2106 l_accrual_line_num := NULL; -- 4262811
2107 l_tmp_amt := NULL; -- 4262811
2108 --
2109
2110 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2111 l_balance_type_code <> 'B' THEN
2112 IF 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 ') = 'TREASURY_BACKOUT' OR
2119 NVL(
2120 xla_ae_sources_pkg.GetSystemSourceChar(
2121 p_source_code => 'XLA_EVENT_TYPE_CODE'
2122 , p_source_type_code => 'Y'
2123 , p_source_application_id => 602
2124 ),'
2125 ') = 'TREASURY_VOID'
2126 THEN
2127
2128 --
2129 XLA_AE_LINES_PKG.SetNewLine;
2130
2131 p_balance_type_code := l_balance_type_code;
2132 -- set the flag so later we will know whether the gain loss line needs to be created
2133
2134 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2135 p_actual_flag :='A';
2136 END IF;
2137
2138 --
2139 -- bulk performance
2140 --
2141 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2142 p_header_num => 0); -- 4262811
2143 --
2144 -- set accounting line options
2145 --
2146 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2147 p_natural_side_code => 'C'
2148 , p_gain_or_loss_flag => 'N'
2149 , p_gl_transfer_mode_code => 'S'
2150 , p_acct_entry_type_code => 'A'
2151 , p_switch_side_flag => 'N'
2152 , p_merge_duplicate_code => 'N'
2153 );
2154 --
2155 l_acc_rev_natural_side_code := 'D'; -- 4262811
2156 --
2157 --
2158 -- set accounting line type info
2159 --
2160 xla_ae_lines_pkg.SetAcctLineType
2161 (p_component_type => l_component_type
2162 ,p_event_type_code => l_event_type_code
2163 ,p_line_definition_owner_code => l_line_definition_owner_code
2164 ,p_line_definition_code => l_line_definition_code
2165 ,p_accounting_line_code => l_component_code
2166 ,p_accounting_line_type_code => l_component_type_code
2167 ,p_accounting_line_appl_id => l_component_appl_id
2168 ,p_amb_context_code => l_amb_context_code
2169 ,p_entity_code => l_entity_code
2170 ,p_event_class_code => l_event_class_code);
2171 --
2172 -- set accounting class
2173 --
2174 xla_ae_lines_pkg.SetAcctClass(
2175 p_accounting_class_code => 'ACCOUNTSPAYABLE'
2176 , p_ae_header_id => l_ae_header_id
2177 );
2178
2179 --
2180 -- set rounding class
2181 --
2182 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2183 'ACCOUNTSPAYABLE';
2184
2185 --
2186 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2187 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2188 --
2189 -- bulk performance
2190 --
2191 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2192
2193 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2194 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2195
2196 -- 4955764
2197 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2198 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2199
2200 -- 4458381 Public Sector Enh
2201
2202 --
2203 -- set accounting attributes for the line type
2204 --
2205 l_entered_amt_idx := 8;
2206 l_accted_amt_idx := 10;
2207 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2208 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
2209 l_rec_acct_attrs.array_num_value(1) := p_source_14;
2210 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2211 l_rec_acct_attrs.array_char_value(2) := p_source_15;
2212 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
2213 l_rec_acct_attrs.array_char_value(3) := p_source_16;
2214 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
2215 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_24);
2216 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2217 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_18);
2218 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
2219 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_17);
2220 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
2221 l_rec_acct_attrs.array_char_value(7) := p_source_15;
2222 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
2223 l_rec_acct_attrs.array_num_value(8) := p_source_19;
2224 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
2225 l_rec_acct_attrs.array_char_value(9) := p_source_20;
2229 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2226 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
2227 l_rec_acct_attrs.array_num_value(10) := p_source_19;
2228
2230 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2231
2232 ---------------------------------------------------------------------------------------------------------------
2233 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2234 ---------------------------------------------------------------------------------------------------------------
2235 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2236
2237 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2238 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2239
2240 IF xla_accounting_cache_pkg.GetValueChar
2241 (p_source_code => 'LEDGER_CATEGORY_CODE'
2242 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2243 AND l_bflow_method_code = 'PRIOR_ENTRY'
2244 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2245 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2246 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2247 )
2248 THEN
2249 xla_ae_lines_pkg.BflowUpgEntry
2250 (p_business_method_code => l_bflow_method_code
2251 ,p_business_class_code => l_bflow_class_code
2252 ,p_balance_type => l_balance_type_code);
2253 ELSE
2254 NULL;
2255 XLA_AE_LINES_PKG.business_flow_validation(
2256 p_business_method_code => l_bflow_method_code
2257 ,p_business_class_code => l_bflow_class_code
2258 ,p_inherit_description_flag => l_inherit_desc_flag);
2259 END IF;
2260
2261 --
2262 -- call description
2263 --
2264 -- No description or it is inherited.
2265 --
2266 -- call ADRs
2267 -- Bug 4922099
2268 --
2269 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2270 (NVL(l_actual_upg_option, 'N') = 'O') OR
2271 (NVL(l_enc_upg_option, 'N') = 'O')
2272 )
2273 THEN
2274 NULL;
2275 --
2276 --
2277
2278 --
2279 --
2280 END IF;
2281 --
2282 -- Bug 4922099
2283 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2284 (NVL(l_enc_upg_option, 'N') = 'O')
2285 ) AND
2286 (l_bflow_method_code = 'PRIOR_ENTRY')
2287 )
2288 THEN
2289 IF
2290 --
2291 1 = 1
2292 --
2293 THEN
2294 xla_accounting_err_pkg.build_message
2295 (p_appli_s_name => 'XLA'
2296 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2297 ,p_token_1 => 'LINE_NUMBER'
2298 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
2299 ,p_token_2 => 'LINE_TYPE_NAME'
2300 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2301 l_component_type
2302 ,l_component_code
2303 ,l_component_type_code
2304 ,l_component_appl_id
2305 ,l_amb_context_code
2306 ,l_entity_code
2307 ,l_event_class_code
2308 )
2309 ,p_token_3 => 'OWNER'
2310 ,p_value_3 => xla_lookups_pkg.get_meaning(
2311 p_lookup_type => 'XLA_OWNER_TYPE'
2312 ,p_lookup_code => l_component_type_code
2313 )
2314 ,p_token_4 => 'PRODUCT_NAME'
2315 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
2316 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2317 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2318 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2319 ,p_ae_header_id => NULL
2320 );
2321
2322 IF (C_LEVEL_ERROR>= g_log_level) THEN
2323 trace
2324 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2325 ,p_level => C_LEVEL_ERROR
2326 ,p_module => l_log_module);
2327 END IF;
2328 END IF;
2329 END IF;
2330 --
2331 --
2332 ------------------------------------------------------------------------------------------------
2333 -- 4219869 Business Flow
2334 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
2335 -- Prior Entry. Currently, the following code is always generated.
2339 ------------------------------------------------------------------------------------
2336 ------------------------------------------------------------------------------------------------
2337 -- No ValidateCurrentLine for business flow method of Prior Entry
2338
2340 -- 4219869 Business Flow
2341 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
2342 ------------------------------------------------------------------------------------
2343 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2344
2345 ----------------------------------------------------------------------------------
2346 -- 4219869 Business Flow
2347 -- Update journal entry status -- Need to generate this within IF <condition>
2348 ----------------------------------------------------------------------------------
2349 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2350 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
2351 ,p_balance_type_code => l_balance_type_code
2352 );
2353
2354 -------------------------------------------------------------------------------------------
2355 -- 4262811 - Generate the Accrual Reversal lines
2356 -------------------------------------------------------------------------------------------
2357 BEGIN
2358 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
2359 (g_array_event(p_event_id).array_value_num('header_index'));
2360 IF l_acc_rev_flag IS NULL THEN
2361 l_acc_rev_flag := 'N';
2362 END IF;
2363 EXCEPTION
2364 WHEN OTHERS THEN
2365 l_acc_rev_flag := 'N';
2366 END;
2367 --
2368 IF (l_acc_rev_flag = 'Y') THEN
2369
2370 -- 4645092 ------------------------------------------------------------------------------
2371 -- To allow MPA report to determine if it should generate report process
2372 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
2373 ------------------------------------------------------------------------------------------
2374
2375 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
2376 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
2377
2378 --
2379 -- Update the line information that should be overwritten
2380 --
2381 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
2382 p_header_num => 1);
2383 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
2384
2385 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
2386
2387 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
2388 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
2389 END IF;
2390
2391 --
2392 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
2393 --
2394 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
2395 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
2396 ELSE
2397 ---------------------------------------------------------------------------------------------------
2398 -- 4262811a Switch Sign
2399 ---------------------------------------------------------------------------------------------------
2400 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
2401 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2402 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2403 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2404 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2405 -- 5132302
2406 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
2407 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2408
2409 END IF;
2410
2411 -- 4955764
2412 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2413 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
2414
2415
2416 XLA_AE_LINES_PKG.ValidateCurrentLine;
2417 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2418
2419 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2420 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
2421 ,p_balance_type_code => l_balance_type_code);
2422
2423 END IF;
2424
2425 -----------------------------------------------------------------------------------------
2426 -- 4262811 Multiperiod Accounting
2427 -----------------------------------------------------------------------------------------
2428 -- No MPA option is assigned.
2429
2430
2431 END IF;
2432 END IF;
2433 --
2434
2435 --
2436 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2437 trace
2438 (p_msg => 'END of AcctLineType_10'
2439 ,p_level => C_LEVEL_PROCEDURE
2440 ,p_module => l_log_module);
2441 END IF;
2442 --
2443 EXCEPTION
2444 WHEN xla_exceptions_pkg.application_exception THEN
2445 RAISE;
2446 WHEN OTHERS THEN
2447 xla_exceptions_pkg.raise_message
2448 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctLineType_10');
2449 END AcctLineType_10;
2450 --
2451
2452 ---------------------------------------
2453 --
2454 -- PRIVATE FUNCTION
2455 -- AcctLineType_11
2456 --
2457 ---------------------------------------
2461 ,p_calculate_acctd_flag IN VARCHAR2
2458 PROCEDURE AcctLineType_11 (
2459 p_application_id IN NUMBER
2460 ,p_event_id IN NUMBER
2462 ,p_calculate_g_l_flag IN VARCHAR2
2463 ,p_actual_flag IN OUT VARCHAR2
2464 ,p_balance_type_code OUT VARCHAR2
2465 ,p_gain_or_loss_ref OUT VARCHAR2
2466
2467 --FV_CHECK_NUMBER
2468 , p_source_1 IN NUMBER
2469 --FV_CHECK_DATE
2470 , p_source_2 IN DATE
2471 --FV_TREASURY_PAY_NUMBER
2472 , p_source_3 IN NUMBER
2473 --DIT_CONFIRM_CASH_ACCOUNT
2474 , p_source_7 IN VARCHAR2
2475 --FV_INV_DIST_CCID
2476 , p_source_8 IN NUMBER
2477 --Automatic Offsets Value
2478 , p_source_9 IN VARCHAR2
2479 , p_source_9_meaning IN VARCHAR2
2480 --FV_AP_LIABILITY_ACCOUNT
2481 , p_source_10 IN NUMBER
2482 --TREASURY_CONFIRMATION_ID
2483 , p_source_13 IN NUMBER
2484 --FV_BUS_FLOW_FV_APP_ID
2485 , p_source_14 IN NUMBER
2486 --FV_BUS_FLOW_TREASURY_DIST_TYPE
2487 , p_source_15 IN VARCHAR2
2488 --FV_BUS_FLOW_TREAS_ENTITY_CODE
2489 , p_source_16 IN VARCHAR2
2490 --FV_PAY_HIST_DIST_ID
2491 , p_source_17 IN NUMBER
2492 --FV_TREASURY_CONFIRMATION_ID
2493 , p_source_18 IN NUMBER
2494 --FV_PAY_DIST_AMOUNT
2495 , p_source_19 IN NUMBER
2496 --FV_INV_CURRENCY_CODE
2497 , p_source_20 IN VARCHAR2
2498 --FV_INV_EXCHANGE_DATE
2499 , p_source_21 IN DATE
2500 --FV_INV_EXCHANGE_RATE
2501 , p_source_22 IN NUMBER
2502 --FV_INV_EXCHANGE_RATE_TYPE
2503 , p_source_23 IN VARCHAR2
2504 )
2505 IS
2506
2507 l_component_type VARCHAR2(80);
2508 l_component_code VARCHAR2(30);
2509 l_component_type_code VARCHAR2(1);
2510 l_component_appl_id INTEGER;
2511 l_amb_context_code VARCHAR2(30);
2512 l_entity_code VARCHAR2(30);
2513 l_event_class_code VARCHAR2(30);
2514 l_ae_header_id NUMBER;
2515 l_event_type_code VARCHAR2(30);
2516 l_line_definition_code VARCHAR2(30);
2517 l_line_definition_owner_code VARCHAR2(1);
2518 --
2519 -- adr variables
2520 l_segment VARCHAR2(30);
2521 l_ccid NUMBER;
2522 l_adr_transaction_coa_id NUMBER;
2523 l_adr_accounting_coa_id NUMBER;
2524 l_adr_flexfield_segment_code VARCHAR2(30);
2525 l_adr_flex_value_set_id NUMBER;
2526 l_adr_value_type_code VARCHAR2(30);
2527 l_adr_value_combination_id NUMBER;
2528 l_adr_value_segment_code VARCHAR2(30);
2529
2530 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
2531 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
2532 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
2533 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
2534
2535 -- 4262811 Variables ------------------------------------------------------------------------------------------
2536 l_entered_amt_idx NUMBER;
2537 l_accted_amt_idx NUMBER;
2538 l_acc_rev_flag VARCHAR2(1);
2539 l_accrual_line_num NUMBER;
2540 l_tmp_amt NUMBER;
2541 l_acc_rev_natural_side_code VARCHAR2(1);
2542
2543 l_num_entries NUMBER;
2544 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
2545 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
2546 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
2547 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
2548 l_recog_line_1 NUMBER;
2549 l_recog_line_2 NUMBER;
2550
2551 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
2552 l_bflow_applied_to_amt NUMBER; -- 5132302
2553 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
2554
2555 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2556
2557 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
2558 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
2559
2560 ---------------------------------------------------------------------------------------------------------------
2561
2562
2563 --
2564 -- bulk performance
2565 --
2566 l_balance_type_code VARCHAR2(1);
2567 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2568 l_log_module VARCHAR2(240);
2569
2570 --
2571 -- Upgrade strategy
2572 --
2573 l_actual_upg_option VARCHAR2(1);
2574 l_enc_upg_option VARCHAR2(1);
2575
2576 --
2577 BEGIN
2578 --
2579 IF g_log_enabled THEN
2580 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_11';
2581 END IF;
2582 --
2583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2584
2585 trace
2586 (p_msg => 'BEGIN of AcctLineType_11'
2587 ,p_level => C_LEVEL_PROCEDURE
2588 ,p_module => l_log_module);
2589
2590 END IF;
2591 --
2592 l_component_type := 'AMB_JLT';
2593 l_component_code := 'FV_TC_DISB_TRANSIT_CR';
2594 l_component_type_code := 'S';
2595 l_component_appl_id := 8901;
2596 l_amb_context_code := 'DEFAULT';
2597 l_entity_code := 'TREASURY_CONFIRMATION';
2598 l_event_class_code := 'TREASURY_ACCOMPLISHMENT';
2602 --
2599 l_event_type_code := 'TREASURY_ACCOMPLISHMENT_ALL';
2600 l_line_definition_owner_code := 'S';
2601 l_line_definition_code := 'FV_TREASURY_PAYMENTS_ALL';
2603 l_balance_type_code := 'A';
2604 l_segment := NULL;
2605 l_ccid := NULL;
2606 l_adr_transaction_coa_id := NULL;
2607 l_adr_accounting_coa_id := NULL;
2608 l_adr_flexfield_segment_code := NULL;
2609 l_adr_flex_value_set_id := NULL;
2610 l_adr_value_type_code := NULL;
2611 l_adr_value_combination_id := NULL;
2612 l_adr_value_segment_code := NULL;
2613
2614 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
2615 l_bflow_class_code := 'FV_TC_PAYMENT_CR'; -- 4219869 Business Flow
2616 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
2617 l_budgetary_control_flag := 'N';
2618
2619 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2620 l_bflow_applied_to_amt := NULL; -- 5132302
2621 l_entered_amt_idx := NULL; -- 4262811
2622 l_accted_amt_idx := NULL; -- 4262811
2623 l_acc_rev_flag := NULL; -- 4262811
2624 l_accrual_line_num := NULL; -- 4262811
2625 l_tmp_amt := NULL; -- 4262811
2626 --
2627
2628 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2629 l_balance_type_code <> 'B' THEN
2630 IF NVL(
2631 xla_ae_sources_pkg.GetSystemSourceChar(
2632 p_source_code => 'XLA_EVENT_TYPE_CODE'
2633 , p_source_type_code => 'Y'
2634 , p_source_application_id => 602
2635 ),'
2636 ') = 'TREASURY_CONFIRM' AND
2637 p_source_13 IS NOT NULL
2638 THEN
2639
2640 --
2641 XLA_AE_LINES_PKG.SetNewLine;
2642
2643 p_balance_type_code := l_balance_type_code;
2644 -- set the flag so later we will know whether the gain loss line needs to be created
2645
2646 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2647 p_actual_flag :='A';
2648 END IF;
2649
2650 --
2651 -- bulk performance
2652 --
2653 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2654 p_header_num => 0); -- 4262811
2655 --
2656 -- set accounting line options
2657 --
2658 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2659 p_natural_side_code => 'C'
2660 , p_gain_or_loss_flag => 'N'
2661 , p_gl_transfer_mode_code => 'S'
2662 , p_acct_entry_type_code => 'A'
2663 , p_switch_side_flag => 'N'
2664 , p_merge_duplicate_code => 'N'
2665 );
2666 --
2667 l_acc_rev_natural_side_code := 'D'; -- 4262811
2668 --
2669 --
2670 -- set accounting line type info
2671 --
2672 xla_ae_lines_pkg.SetAcctLineType
2673 (p_component_type => l_component_type
2674 ,p_event_type_code => l_event_type_code
2675 ,p_line_definition_owner_code => l_line_definition_owner_code
2676 ,p_line_definition_code => l_line_definition_code
2677 ,p_accounting_line_code => l_component_code
2678 ,p_accounting_line_type_code => l_component_type_code
2679 ,p_accounting_line_appl_id => l_component_appl_id
2680 ,p_amb_context_code => l_amb_context_code
2681 ,p_entity_code => l_entity_code
2682 ,p_event_class_code => l_event_class_code);
2683 --
2684 -- set accounting class
2685 --
2686 xla_ae_lines_pkg.SetAcctClass(
2687 p_accounting_class_code => 'ACCOUNTSPAYABLE'
2688 , p_ae_header_id => l_ae_header_id
2689 );
2690
2691 --
2692 -- set rounding class
2693 --
2694 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2695 'ACCOUNTSPAYABLE';
2696
2697 --
2698 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2699 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2700 --
2701 -- bulk performance
2702 --
2703 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2704
2705 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2706 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2707
2708 -- 4955764
2709 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2710 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2711
2712 -- 4458381 Public Sector Enh
2713
2714 --
2715 -- set accounting attributes for the line type
2716 --
2717 l_entered_amt_idx := 8;
2718 l_accted_amt_idx := 13;
2719 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2720 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
2721 l_rec_acct_attrs.array_num_value(1) := p_source_14;
2722 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2723 l_rec_acct_attrs.array_char_value(2) := p_source_15;
2724 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
2725 l_rec_acct_attrs.array_char_value(3) := p_source_16;
2726 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
2727 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_17);
2728 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2729 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_18);
2730 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
2734 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
2731 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_17);
2732 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
2733 l_rec_acct_attrs.array_char_value(7) := p_source_15;
2735 l_rec_acct_attrs.array_num_value(8) := p_source_19;
2736 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
2737 l_rec_acct_attrs.array_char_value(9) := p_source_20;
2738 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
2739 l_rec_acct_attrs.array_date_value(10) := p_source_21;
2740 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
2741 l_rec_acct_attrs.array_num_value(11) := p_source_22;
2742 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
2743 l_rec_acct_attrs.array_char_value(12) := p_source_23;
2744 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
2745 l_rec_acct_attrs.array_num_value(13) := p_source_19;
2746
2747 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2748 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2749
2750 ---------------------------------------------------------------------------------------------------------------
2751 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2752 ---------------------------------------------------------------------------------------------------------------
2753 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2754
2755 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2756 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2757
2758 IF xla_accounting_cache_pkg.GetValueChar
2759 (p_source_code => 'LEDGER_CATEGORY_CODE'
2760 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2761 AND l_bflow_method_code = 'PRIOR_ENTRY'
2762 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2763 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2764 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2765 )
2766 THEN
2767 xla_ae_lines_pkg.BflowUpgEntry
2768 (p_business_method_code => l_bflow_method_code
2769 ,p_business_class_code => l_bflow_class_code
2770 ,p_balance_type => l_balance_type_code);
2771 ELSE
2772 NULL;
2773 -- No business flow processing for business flow method of NONE.
2774 END IF;
2775
2776 --
2777 -- call description
2778 --
2779
2780 xla_ae_lines_pkg.SetLineDescription(
2781 p_ae_header_id => l_ae_header_id
2782 ,p_description => Description_1 (
2783 p_application_id => p_application_id
2784 , p_ae_header_id => l_ae_header_id
2785 , p_source_1 => p_source_1
2786 , p_source_2 => p_source_2
2787 , p_source_3 => p_source_3
2788 )
2789 );
2790
2791
2792 --
2793 -- call ADRs
2794 -- Bug 4922099
2795 --
2796 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2797 (NVL(l_actual_upg_option, 'N') = 'O') OR
2798 (NVL(l_enc_upg_option, 'N') = 'O')
2799 )
2800 THEN
2801 NULL;
2802 --
2803 --
2804
2805 l_ccid := AcctDerRule_8(
2806 p_application_id => p_application_id
2807 , p_ae_header_id => l_ae_header_id
2808 , p_source_8 => p_source_8
2809 , p_source_9 => p_source_9
2810 , p_source_9_meaning => p_source_9_meaning
2811 , p_source_10 => p_source_10
2812 , x_transaction_coa_id => l_adr_transaction_coa_id
2813 , x_accounting_coa_id => l_adr_accounting_coa_id
2814 , x_value_type_code => l_adr_value_type_code
2815 , p_side => 'NA'
2816 );
2817
2818 xla_ae_lines_pkg.set_ccid(
2819 p_code_combination_id => l_ccid
2820 , p_value_type_code => l_adr_value_type_code
2821 , p_transaction_coa_id => l_adr_transaction_coa_id
2822 , p_accounting_coa_id => l_adr_accounting_coa_id
2823 , p_adr_code => 'FV_INV_PMT_ACCOUNT'
2824 , p_adr_type_code => 'S'
2825 , p_component_type => l_component_type
2826 , p_component_code => l_component_code
2827 , p_component_type_code => l_component_type_code
2828 , p_component_appl_id => l_component_appl_id
2829 , p_amb_context_code => l_amb_context_code
2830 , p_side => 'NA'
2831 );
2832
2833
2834 l_segment := AcctDerRule_4(
2835 p_application_id => p_application_id
2836 , p_ae_header_id => l_ae_header_id
2837 , p_source_8 => p_source_8
2838 , p_source_9 => p_source_9
2839 , p_source_9_meaning => p_source_9_meaning
2840 , p_source_10 => p_source_10
2841 , x_transaction_coa_id => l_adr_transaction_coa_id
2842 , x_accounting_coa_id => l_adr_accounting_coa_id
2843 , x_flexfield_segment_code => l_adr_flexfield_segment_code
2844 , x_flex_value_set_id => l_adr_flex_value_set_id
2845 , x_value_type_code => l_adr_value_type_code
2846 , x_value_combination_id => l_adr_value_combination_id
2847 , x_value_segment_code => l_adr_value_segment_code
2848 , p_side => 'NA'
2849 , p_override_seg_flag => 'Y'
2850 );
2851
2852 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
2853
2854 xla_ae_lines_pkg.set_segment(
2855 p_to_segment_code => 'GL_BALANCING'
2856 , p_segment_value => l_segment
2860 , p_transaction_coa_id => l_adr_transaction_coa_id
2857 , p_from_segment_code => l_adr_value_segment_code
2858 , p_from_combination_id => l_adr_value_combination_id
2859 , p_value_type_code => l_adr_value_type_code
2861 , p_accounting_coa_id => l_adr_accounting_coa_id
2862 , p_flexfield_segment_code => l_adr_flexfield_segment_code
2863 , p_flex_value_set_id => l_adr_flex_value_set_id
2864 , p_adr_code => 'FV_INV_PMT_BAL_SEG'
2865 , p_adr_type_code => 'S'
2866 , p_component_type => l_component_type
2867 , p_component_code => l_component_code
2868 , p_component_type_code => l_component_type_code
2869 , p_component_appl_id => l_component_appl_id
2870 , p_amb_context_code => l_amb_context_code
2871 , p_entity_code => 'TREASURY_CONFIRMATION'
2872 , p_event_class_code => 'TREASURY_ACCOMPLISHMENT'
2873 , p_side => 'NA'
2874 );
2875
2876 END IF;
2877
2878 l_segment := AcctDerRule_3(
2879 p_application_id => p_application_id
2880 , p_ae_header_id => l_ae_header_id
2881 , p_source_7 => p_source_7
2882 , x_transaction_coa_id => l_adr_transaction_coa_id
2883 , x_accounting_coa_id => l_adr_accounting_coa_id
2884 , x_flexfield_segment_code => l_adr_flexfield_segment_code
2885 , x_flex_value_set_id => l_adr_flex_value_set_id
2886 , x_value_type_code => l_adr_value_type_code
2887 , x_value_combination_id => l_adr_value_combination_id
2888 , x_value_segment_code => l_adr_value_segment_code
2889 , p_side => 'NA'
2890 , p_override_seg_flag => 'Y'
2891 );
2892
2893 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
2894
2895 xla_ae_lines_pkg.set_segment(
2896 p_to_segment_code => 'GL_ACCOUNT'
2897 , p_segment_value => l_segment
2898 , p_from_segment_code => l_adr_value_segment_code
2899 , p_from_combination_id => l_adr_value_combination_id
2900 , p_value_type_code => l_adr_value_type_code
2901 , p_transaction_coa_id => l_adr_transaction_coa_id
2902 , p_accounting_coa_id => l_adr_accounting_coa_id
2903 , p_flexfield_segment_code => l_adr_flexfield_segment_code
2904 , p_flex_value_set_id => l_adr_flex_value_set_id
2905 , p_adr_code => 'FV_TREASURY_CONFIRM_CASH_ACCT'
2906 , p_adr_type_code => 'S'
2907 , p_component_type => l_component_type
2908 , p_component_code => l_component_code
2909 , p_component_type_code => l_component_type_code
2910 , p_component_appl_id => l_component_appl_id
2911 , p_amb_context_code => l_amb_context_code
2912 , p_entity_code => 'TREASURY_CONFIRMATION'
2913 , p_event_class_code => 'TREASURY_ACCOMPLISHMENT'
2914 , p_side => 'NA'
2915 );
2916
2917 END IF;
2918
2919 --
2920 --
2921 END IF;
2922 --
2923 -- Bug 4922099
2924 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2925 (NVL(l_enc_upg_option, 'N') = 'O')
2926 ) AND
2927 (l_bflow_method_code = 'PRIOR_ENTRY')
2928 )
2929 THEN
2930 IF
2931 --
2932 1 = 2
2933 --
2934 THEN
2935 xla_accounting_err_pkg.build_message
2936 (p_appli_s_name => 'XLA'
2937 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2938 ,p_token_1 => 'LINE_NUMBER'
2939 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
2940 ,p_token_2 => 'LINE_TYPE_NAME'
2941 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2942 l_component_type
2943 ,l_component_code
2944 ,l_component_type_code
2945 ,l_component_appl_id
2946 ,l_amb_context_code
2947 ,l_entity_code
2948 ,l_event_class_code
2949 )
2950 ,p_token_3 => 'OWNER'
2951 ,p_value_3 => xla_lookups_pkg.get_meaning(
2952 p_lookup_type => 'XLA_OWNER_TYPE'
2953 ,p_lookup_code => l_component_type_code
2954 )
2955 ,p_token_4 => 'PRODUCT_NAME'
2956 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
2957 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2958 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2959 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2960 ,p_ae_header_id => NULL
2961 );
2962
2963 IF (C_LEVEL_ERROR>= g_log_level) THEN
2964 trace
2965 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2966 ,p_level => C_LEVEL_ERROR
2967 ,p_module => l_log_module);
2968 END IF;
2969 END IF;
2970 END IF;
2971 --
2972 --
2973 ------------------------------------------------------------------------------------------------
2974 -- 4219869 Business Flow
2975 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
2976 -- Prior Entry. Currently, the following code is always generated.
2977 ------------------------------------------------------------------------------------------------
2978 XLA_AE_LINES_PKG.ValidateCurrentLine;
2979
2980 ------------------------------------------------------------------------------------
2981 -- 4219869 Business Flow
2982 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
2983 ------------------------------------------------------------------------------------
2984 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2985
2986 ----------------------------------------------------------------------------------
2987 -- 4219869 Business Flow
2988 -- Update journal entry status -- Need to generate this within IF <condition>
2989 ----------------------------------------------------------------------------------
2990 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2991 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
2992 ,p_balance_type_code => l_balance_type_code
2993 );
2994
2995 -------------------------------------------------------------------------------------------
2996 -- 4262811 - Generate the Accrual Reversal lines
2997 -------------------------------------------------------------------------------------------
2998 BEGIN
2999 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3000 (g_array_event(p_event_id).array_value_num('header_index'));
3001 IF l_acc_rev_flag IS NULL THEN
3002 l_acc_rev_flag := 'N';
3003 END IF;
3004 EXCEPTION
3005 WHEN OTHERS THEN
3006 l_acc_rev_flag := 'N';
3007 END;
3008 --
3009 IF (l_acc_rev_flag = 'Y') THEN
3010
3011 -- 4645092 ------------------------------------------------------------------------------
3012 -- To allow MPA report to determine if it should generate report process
3013 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3014 ------------------------------------------------------------------------------------------
3015
3016 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3017 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3018
3019 --
3020 -- Update the line information that should be overwritten
3021 --
3022 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3023 p_header_num => 1);
3024 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3025
3029 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3026 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3027
3028 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3030 END IF;
3031
3032 --
3033 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3034 --
3035 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3036 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3037 ELSE
3038 ---------------------------------------------------------------------------------------------------
3039 -- 4262811a Switch Sign
3040 ---------------------------------------------------------------------------------------------------
3041 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3042 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3043 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3044 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3045 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3046 -- 5132302
3047 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3048 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3049
3050 END IF;
3051
3052 -- 4955764
3053 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3054 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3055
3056
3057 XLA_AE_LINES_PKG.ValidateCurrentLine;
3058 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3059
3060 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3061 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3062 ,p_balance_type_code => l_balance_type_code);
3063
3064 END IF;
3065
3066 -----------------------------------------------------------------------------------------
3067 -- 4262811 Multiperiod Accounting
3068 -----------------------------------------------------------------------------------------
3069 -- No MPA option is assigned.
3070
3071
3072 END IF;
3073 END IF;
3074 --
3075
3076 --
3077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3078 trace
3079 (p_msg => 'END of AcctLineType_11'
3080 ,p_level => C_LEVEL_PROCEDURE
3081 ,p_module => l_log_module);
3082 END IF;
3083 --
3084 EXCEPTION
3085 WHEN xla_exceptions_pkg.application_exception THEN
3086 RAISE;
3087 WHEN OTHERS THEN
3088 xla_exceptions_pkg.raise_message
3089 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctLineType_11');
3090 END AcctLineType_11;
3091 --
3092
3093 ---------------------------------------
3094 --
3095 -- PRIVATE FUNCTION
3096 -- AcctLineType_12
3097 --
3098 ---------------------------------------
3099 PROCEDURE AcctLineType_12 (
3100 p_application_id IN NUMBER
3101 ,p_event_id IN NUMBER
3102 ,p_calculate_acctd_flag IN VARCHAR2
3103 ,p_calculate_g_l_flag IN VARCHAR2
3104 ,p_actual_flag IN OUT VARCHAR2
3105 ,p_balance_type_code OUT VARCHAR2
3106 ,p_gain_or_loss_ref OUT VARCHAR2
3107
3108 --FV_BUS_FLOW_FV_APP_ID
3109 , p_source_14 IN NUMBER
3110 --FV_BUS_FLOW_TREASURY_DIST_TYPE
3111 , p_source_15 IN VARCHAR2
3112 --FV_BUS_FLOW_TREAS_ENTITY_CODE
3113 , p_source_16 IN VARCHAR2
3114 --FV_PAY_HIST_DIST_ID
3115 , p_source_17 IN NUMBER
3116 --FV_TREASURY_CONFIRMATION_ID
3117 , p_source_18 IN NUMBER
3118 --FV_PAY_DIST_AMOUNT
3119 , p_source_19 IN NUMBER
3120 --FV_INV_CURRENCY_CODE
3121 , p_source_20 IN VARCHAR2
3122 --FV_REV_PAY_HIST_DIST_ID
3123 , p_source_24 IN NUMBER
3124 )
3125 IS
3126
3127 l_component_type VARCHAR2(80);
3128 l_component_code VARCHAR2(30);
3129 l_component_type_code VARCHAR2(1);
3130 l_component_appl_id INTEGER;
3131 l_amb_context_code VARCHAR2(30);
3132 l_entity_code VARCHAR2(30);
3133 l_event_class_code VARCHAR2(30);
3134 l_ae_header_id NUMBER;
3135 l_event_type_code VARCHAR2(30);
3136 l_line_definition_code VARCHAR2(30);
3137 l_line_definition_owner_code VARCHAR2(1);
3138 --
3139 -- adr variables
3140 l_segment VARCHAR2(30);
3141 l_ccid NUMBER;
3142 l_adr_transaction_coa_id NUMBER;
3143 l_adr_accounting_coa_id NUMBER;
3144 l_adr_flexfield_segment_code VARCHAR2(30);
3145 l_adr_flex_value_set_id NUMBER;
3146 l_adr_value_type_code VARCHAR2(30);
3147 l_adr_value_combination_id NUMBER;
3148 l_adr_value_segment_code VARCHAR2(30);
3149
3150 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3151 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3152 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3153 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3154
3155 -- 4262811 Variables ------------------------------------------------------------------------------------------
3156 l_entered_amt_idx NUMBER;
3157 l_accted_amt_idx NUMBER;
3158 l_acc_rev_flag VARCHAR2(1);
3162
3159 l_accrual_line_num NUMBER;
3160 l_tmp_amt NUMBER;
3161 l_acc_rev_natural_side_code VARCHAR2(1);
3163 l_num_entries NUMBER;
3164 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3165 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3166 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3167 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3168 l_recog_line_1 NUMBER;
3169 l_recog_line_2 NUMBER;
3170
3171 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3172 l_bflow_applied_to_amt NUMBER; -- 5132302
3173 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3174
3175 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3176
3177 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3178 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3179
3180 ---------------------------------------------------------------------------------------------------------------
3181
3182
3183 --
3184 -- bulk performance
3185 --
3186 l_balance_type_code VARCHAR2(1);
3187 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3188 l_log_module VARCHAR2(240);
3189
3190 --
3191 -- Upgrade strategy
3192 --
3193 l_actual_upg_option VARCHAR2(1);
3194 l_enc_upg_option VARCHAR2(1);
3195
3196 --
3197 BEGIN
3198 --
3199 IF g_log_enabled THEN
3200 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_12';
3201 END IF;
3202 --
3203 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3204
3205 trace
3206 (p_msg => 'BEGIN of AcctLineType_12'
3207 ,p_level => C_LEVEL_PROCEDURE
3208 ,p_module => l_log_module);
3209
3210 END IF;
3211 --
3212 l_component_type := 'AMB_JLT';
3213 l_component_code := 'FV_TC_DISB_TRANSIT_REV_DR';
3214 l_component_type_code := 'S';
3215 l_component_appl_id := 8901;
3216 l_amb_context_code := 'DEFAULT';
3217 l_entity_code := 'TREASURY_CONFIRMATION';
3218 l_event_class_code := 'TREASURY_ACCOMPLISHMENT';
3219 l_event_type_code := 'TREASURY_ACCOMPLISHMENT_ALL';
3220 l_line_definition_owner_code := 'S';
3221 l_line_definition_code := 'FV_TREASURY_PAYMENTS_ALL';
3222 --
3223 l_balance_type_code := 'A';
3224 l_segment := NULL;
3225 l_ccid := NULL;
3226 l_adr_transaction_coa_id := NULL;
3227 l_adr_accounting_coa_id := NULL;
3228 l_adr_flexfield_segment_code := NULL;
3229 l_adr_flex_value_set_id := NULL;
3230 l_adr_value_type_code := NULL;
3231 l_adr_value_combination_id := NULL;
3232 l_adr_value_segment_code := NULL;
3233
3234 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
3235 l_bflow_class_code := 'FV_TC_PAYMENT_CR'; -- 4219869 Business Flow
3236 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
3237 l_budgetary_control_flag := 'N';
3238
3239 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3240 l_bflow_applied_to_amt := NULL; -- 5132302
3241 l_entered_amt_idx := NULL; -- 4262811
3242 l_accted_amt_idx := NULL; -- 4262811
3243 l_acc_rev_flag := NULL; -- 4262811
3244 l_accrual_line_num := NULL; -- 4262811
3245 l_tmp_amt := NULL; -- 4262811
3246 --
3247
3248 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3249 l_balance_type_code <> 'B' THEN
3250 IF NVL(
3251 xla_ae_sources_pkg.GetSystemSourceChar(
3252 p_source_code => 'XLA_EVENT_TYPE_CODE'
3253 , p_source_type_code => 'Y'
3254 , p_source_application_id => 602
3255 ),'
3256 ') = 'TREASURY_BACKOUT' OR
3257 NVL(
3258 xla_ae_sources_pkg.GetSystemSourceChar(
3259 p_source_code => 'XLA_EVENT_TYPE_CODE'
3260 , p_source_type_code => 'Y'
3261 , p_source_application_id => 602
3262 ),'
3263 ') = 'TREASURY_VOID'
3264 THEN
3265
3266 --
3267 XLA_AE_LINES_PKG.SetNewLine;
3268
3269 p_balance_type_code := l_balance_type_code;
3270 -- set the flag so later we will know whether the gain loss line needs to be created
3271
3272 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3273 p_actual_flag :='A';
3274 END IF;
3275
3276 --
3277 -- bulk performance
3278 --
3279 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3280 p_header_num => 0); -- 4262811
3281 --
3282 -- set accounting line options
3283 --
3284 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3285 p_natural_side_code => 'D'
3286 , p_gain_or_loss_flag => 'N'
3287 , p_gl_transfer_mode_code => 'S'
3288 , p_acct_entry_type_code => 'A'
3289 , p_switch_side_flag => 'N'
3290 , p_merge_duplicate_code => 'N'
3291 );
3292 --
3293 l_acc_rev_natural_side_code := 'C'; -- 4262811
3294 --
3295 --
3296 -- set accounting line type info
3297 --
3298 xla_ae_lines_pkg.SetAcctLineType
3299 (p_component_type => l_component_type
3300 ,p_event_type_code => l_event_type_code
3301 ,p_line_definition_owner_code => l_line_definition_owner_code
3302 ,p_line_definition_code => l_line_definition_code
3306 ,p_amb_context_code => l_amb_context_code
3303 ,p_accounting_line_code => l_component_code
3304 ,p_accounting_line_type_code => l_component_type_code
3305 ,p_accounting_line_appl_id => l_component_appl_id
3307 ,p_entity_code => l_entity_code
3308 ,p_event_class_code => l_event_class_code);
3309 --
3310 -- set accounting class
3311 --
3312 xla_ae_lines_pkg.SetAcctClass(
3313 p_accounting_class_code => 'ACCOUNTSPAYABLE'
3314 , p_ae_header_id => l_ae_header_id
3315 );
3316
3317 --
3318 -- set rounding class
3319 --
3320 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3321 'ACCOUNTSPAYABLE';
3322
3323 --
3324 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3325 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3326 --
3327 -- bulk performance
3328 --
3329 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3330
3331 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3332 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3333
3334 -- 4955764
3335 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3336 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3337
3338 -- 4458381 Public Sector Enh
3339
3340 --
3341 -- set accounting attributes for the line type
3342 --
3343 l_entered_amt_idx := 8;
3344 l_accted_amt_idx := 10;
3345 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3346 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
3347 l_rec_acct_attrs.array_num_value(1) := p_source_14;
3348 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
3349 l_rec_acct_attrs.array_char_value(2) := p_source_15;
3350 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
3351 l_rec_acct_attrs.array_char_value(3) := p_source_16;
3352 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
3353 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_24);
3354 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
3355 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_18);
3356 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
3357 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_17);
3358 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
3359 l_rec_acct_attrs.array_char_value(7) := p_source_15;
3360 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
3361 l_rec_acct_attrs.array_num_value(8) := p_source_19;
3362 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
3363 l_rec_acct_attrs.array_char_value(9) := p_source_20;
3364 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
3365 l_rec_acct_attrs.array_num_value(10) := p_source_19;
3366
3367 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3368 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3369
3370 ---------------------------------------------------------------------------------------------------------------
3371 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3372 ---------------------------------------------------------------------------------------------------------------
3373 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3374
3375 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3376 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3377
3378 IF xla_accounting_cache_pkg.GetValueChar
3379 (p_source_code => 'LEDGER_CATEGORY_CODE'
3380 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3381 AND l_bflow_method_code = 'PRIOR_ENTRY'
3382 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3383 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3384 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3385 )
3386 THEN
3387 xla_ae_lines_pkg.BflowUpgEntry
3388 (p_business_method_code => l_bflow_method_code
3389 ,p_business_class_code => l_bflow_class_code
3390 ,p_balance_type => l_balance_type_code);
3391 ELSE
3392 NULL;
3393 XLA_AE_LINES_PKG.business_flow_validation(
3394 p_business_method_code => l_bflow_method_code
3395 ,p_business_class_code => l_bflow_class_code
3396 ,p_inherit_description_flag => l_inherit_desc_flag);
3397 END IF;
3398
3399 --
3400 -- call description
3401 --
3402 -- No description or it is inherited.
3403 --
3404 -- call ADRs
3405 -- Bug 4922099
3406 --
3407 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3408 (NVL(l_actual_upg_option, 'N') = 'O') OR
3409 (NVL(l_enc_upg_option, 'N') = 'O')
3410 )
3411 THEN
3412 NULL;
3413 --
3414 --
3415
3416 --
3417 --
3418 END IF;
3419 --
3420 -- Bug 4922099
3421 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3422 (NVL(l_enc_upg_option, 'N') = 'O')
3423 ) AND
3424 (l_bflow_method_code = 'PRIOR_ENTRY')
3425 )
3426 THEN
3427 IF
3428 --
3429 1 = 1
3433 (p_appli_s_name => 'XLA'
3430 --
3431 THEN
3432 xla_accounting_err_pkg.build_message
3434 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3435 ,p_token_1 => 'LINE_NUMBER'
3436 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
3437 ,p_token_2 => 'LINE_TYPE_NAME'
3438 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
3439 l_component_type
3440 ,l_component_code
3441 ,l_component_type_code
3442 ,l_component_appl_id
3443 ,l_amb_context_code
3444 ,l_entity_code
3445 ,l_event_class_code
3446 )
3447 ,p_token_3 => 'OWNER'
3448 ,p_value_3 => xla_lookups_pkg.get_meaning(
3449 p_lookup_type => 'XLA_OWNER_TYPE'
3450 ,p_lookup_code => l_component_type_code
3451 )
3452 ,p_token_4 => 'PRODUCT_NAME'
3453 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3454 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3455 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3456 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3457 ,p_ae_header_id => NULL
3458 );
3459
3460 IF (C_LEVEL_ERROR>= g_log_level) THEN
3461 trace
3462 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3463 ,p_level => C_LEVEL_ERROR
3464 ,p_module => l_log_module);
3465 END IF;
3466 END IF;
3467 END IF;
3468 --
3469 --
3470 ------------------------------------------------------------------------------------------------
3471 -- 4219869 Business Flow
3472 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3473 -- Prior Entry. Currently, the following code is always generated.
3474 ------------------------------------------------------------------------------------------------
3475 -- No ValidateCurrentLine for business flow method of Prior Entry
3476
3477 ------------------------------------------------------------------------------------
3478 -- 4219869 Business Flow
3479 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3480 ------------------------------------------------------------------------------------
3481 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3482
3483 ----------------------------------------------------------------------------------
3484 -- 4219869 Business Flow
3485 -- Update journal entry status -- Need to generate this within IF <condition>
3486 ----------------------------------------------------------------------------------
3487 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3488 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3489 ,p_balance_type_code => l_balance_type_code
3490 );
3491
3492 -------------------------------------------------------------------------------------------
3493 -- 4262811 - Generate the Accrual Reversal lines
3494 -------------------------------------------------------------------------------------------
3495 BEGIN
3496 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3497 (g_array_event(p_event_id).array_value_num('header_index'));
3498 IF l_acc_rev_flag IS NULL THEN
3499 l_acc_rev_flag := 'N';
3500 END IF;
3501 EXCEPTION
3502 WHEN OTHERS THEN
3503 l_acc_rev_flag := 'N';
3504 END;
3505 --
3506 IF (l_acc_rev_flag = 'Y') THEN
3507
3508 -- 4645092 ------------------------------------------------------------------------------
3509 -- To allow MPA report to determine if it should generate report process
3510 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3511 ------------------------------------------------------------------------------------------
3512
3513 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3514 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3515
3516 --
3517 -- Update the line information that should be overwritten
3518 --
3519 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3520 p_header_num => 1);
3521 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3522
3523 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3524
3525 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3526 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3527 END IF;
3528
3529 --
3533 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3530 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3531 --
3532 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3534 ELSE
3535 ---------------------------------------------------------------------------------------------------
3536 -- 4262811a Switch Sign
3537 ---------------------------------------------------------------------------------------------------
3538 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3539 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3540 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3541 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3542 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3543 -- 5132302
3544 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3545 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3546
3547 END IF;
3548
3549 -- 4955764
3550 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3551 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3552
3553
3554 XLA_AE_LINES_PKG.ValidateCurrentLine;
3555 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3556
3557 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3558 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3559 ,p_balance_type_code => l_balance_type_code);
3560
3561 END IF;
3562
3563 -----------------------------------------------------------------------------------------
3564 -- 4262811 Multiperiod Accounting
3565 -----------------------------------------------------------------------------------------
3566 -- No MPA option is assigned.
3567
3568
3569 END IF;
3570 END IF;
3571 --
3572
3573 --
3574 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3575 trace
3576 (p_msg => 'END of AcctLineType_12'
3577 ,p_level => C_LEVEL_PROCEDURE
3578 ,p_module => l_log_module);
3579 END IF;
3580 --
3581 EXCEPTION
3582 WHEN xla_exceptions_pkg.application_exception THEN
3583 RAISE;
3584 WHEN OTHERS THEN
3585 xla_exceptions_pkg.raise_message
3586 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctLineType_12');
3587 END AcctLineType_12;
3588 --
3589
3590 ---------------------------------------
3591 --
3592 -- PRIVATE FUNCTION
3593 -- AcctLineType_13
3594 --
3595 ---------------------------------------
3596 PROCEDURE AcctLineType_13 (
3597 p_application_id IN NUMBER
3598 ,p_event_id IN NUMBER
3599 ,p_calculate_acctd_flag IN VARCHAR2
3600 ,p_calculate_g_l_flag IN VARCHAR2
3601 ,p_actual_flag IN OUT VARCHAR2
3602 ,p_balance_type_code OUT VARCHAR2
3603 ,p_gain_or_loss_ref OUT VARCHAR2
3604
3605 --FV_CHECK_NUMBER
3606 , p_source_1 IN NUMBER
3607 --FV_CHECK_DATE
3608 , p_source_2 IN DATE
3609 --FV_TREASURY_PAY_NUMBER
3610 , p_source_3 IN NUMBER
3611 --FV_INV_DIST_CCID
3612 , p_source_8 IN NUMBER
3613 --FV_INV_TYPE_LOOKUP_CODE
3614 , p_source_11 IN VARCHAR2
3615 --FV_BUS_FLOW_FV_APP_ID
3616 , p_source_14 IN NUMBER
3617 --FV_BUS_FLOW_TREASURY_DIST_TYPE
3618 , p_source_15 IN VARCHAR2
3619 --FV_BUS_FLOW_TREAS_ENTITY_CODE
3620 , p_source_16 IN VARCHAR2
3621 --FV_PAY_HIST_DIST_ID
3622 , p_source_17 IN NUMBER
3623 --FV_TREASURY_CONFIRMATION_ID
3624 , p_source_18 IN NUMBER
3625 --FV_PAY_DIST_AMOUNT
3626 , p_source_19 IN NUMBER
3627 --FV_INV_CURRENCY_CODE
3628 , p_source_20 IN VARCHAR2
3629 --FV_INV_EXCHANGE_DATE
3630 , p_source_21 IN DATE
3631 --FV_INV_EXCHANGE_RATE
3632 , p_source_22 IN NUMBER
3633 --FV_INV_EXCHANGE_RATE_TYPE
3634 , p_source_23 IN VARCHAR2
3635 )
3636 IS
3637
3638 l_component_type VARCHAR2(80);
3639 l_component_code VARCHAR2(30);
3640 l_component_type_code VARCHAR2(1);
3641 l_component_appl_id INTEGER;
3642 l_amb_context_code VARCHAR2(30);
3643 l_entity_code VARCHAR2(30);
3644 l_event_class_code VARCHAR2(30);
3645 l_ae_header_id NUMBER;
3646 l_event_type_code VARCHAR2(30);
3647 l_line_definition_code VARCHAR2(30);
3648 l_line_definition_owner_code VARCHAR2(1);
3649 --
3650 -- adr variables
3651 l_segment VARCHAR2(30);
3652 l_ccid NUMBER;
3653 l_adr_transaction_coa_id NUMBER;
3654 l_adr_accounting_coa_id NUMBER;
3655 l_adr_flexfield_segment_code VARCHAR2(30);
3656 l_adr_flex_value_set_id NUMBER;
3657 l_adr_value_type_code VARCHAR2(30);
3658 l_adr_value_combination_id NUMBER;
3659 l_adr_value_segment_code VARCHAR2(30);
3660
3661 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3662 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3663 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3664 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3665
3666 -- 4262811 Variables ------------------------------------------------------------------------------------------
3670 l_accrual_line_num NUMBER;
3667 l_entered_amt_idx NUMBER;
3668 l_accted_amt_idx NUMBER;
3669 l_acc_rev_flag VARCHAR2(1);
3671 l_tmp_amt NUMBER;
3672 l_acc_rev_natural_side_code VARCHAR2(1);
3673
3674 l_num_entries NUMBER;
3675 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3676 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3677 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3678 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3679 l_recog_line_1 NUMBER;
3680 l_recog_line_2 NUMBER;
3681
3682 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3683 l_bflow_applied_to_amt NUMBER; -- 5132302
3684 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3685
3686 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3687
3688 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3689 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3690
3691 ---------------------------------------------------------------------------------------------------------------
3692
3693
3694 --
3695 -- bulk performance
3696 --
3697 l_balance_type_code VARCHAR2(1);
3698 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3699 l_log_module VARCHAR2(240);
3700
3701 --
3702 -- Upgrade strategy
3703 --
3704 l_actual_upg_option VARCHAR2(1);
3705 l_enc_upg_option VARCHAR2(1);
3706
3707 --
3708 BEGIN
3709 --
3710 IF g_log_enabled THEN
3711 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_13';
3712 END IF;
3713 --
3714 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3715
3716 trace
3717 (p_msg => 'BEGIN of AcctLineType_13'
3718 ,p_level => C_LEVEL_PROCEDURE
3719 ,p_module => l_log_module);
3720
3721 END IF;
3722 --
3723 l_component_type := 'AMB_JLT';
3724 l_component_code := 'FV_TC_PAID_ACCT_CR';
3725 l_component_type_code := 'S';
3726 l_component_appl_id := 8901;
3727 l_amb_context_code := 'DEFAULT';
3728 l_entity_code := 'TREASURY_CONFIRMATION';
3729 l_event_class_code := 'TREASURY_ACCOMPLISHMENT';
3730 l_event_type_code := 'TREASURY_ACCOMPLISHMENT_ALL';
3731 l_line_definition_owner_code := 'S';
3732 l_line_definition_code := 'FV_TREASURY_PAYMENTS_ALL';
3733 --
3734 l_balance_type_code := 'A';
3735 l_segment := NULL;
3736 l_ccid := NULL;
3737 l_adr_transaction_coa_id := NULL;
3738 l_adr_accounting_coa_id := NULL;
3739 l_adr_flexfield_segment_code := NULL;
3740 l_adr_flex_value_set_id := NULL;
3741 l_adr_value_type_code := NULL;
3742 l_adr_value_combination_id := NULL;
3743 l_adr_value_segment_code := NULL;
3744
3745 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
3746 l_bflow_class_code := 'FV_TC_PAID_CR'; -- 4219869 Business Flow
3747 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
3748 l_budgetary_control_flag := 'N';
3749
3750 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3751 l_bflow_applied_to_amt := NULL; -- 5132302
3752 l_entered_amt_idx := NULL; -- 4262811
3753 l_accted_amt_idx := NULL; -- 4262811
3754 l_acc_rev_flag := NULL; -- 4262811
3755 l_accrual_line_num := NULL; -- 4262811
3756 l_tmp_amt := NULL; -- 4262811
3757 --
3758
3759 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3760 l_balance_type_code <> 'B' THEN
3761 IF NVL(
3762 xla_ae_sources_pkg.GetSystemSourceChar(
3763 p_source_code => 'XLA_EVENT_TYPE_CODE'
3764 , p_source_type_code => 'Y'
3765 , p_source_application_id => 602
3766 ),'
3767 ') = 'TREASURY_CONFIRM'
3768 THEN
3769
3770 --
3771 XLA_AE_LINES_PKG.SetNewLine;
3772
3773 p_balance_type_code := l_balance_type_code;
3774 -- set the flag so later we will know whether the gain loss line needs to be created
3775
3776 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3777 p_actual_flag :='A';
3778 END IF;
3779
3780 --
3781 -- bulk performance
3782 --
3783 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3784 p_header_num => 0); -- 4262811
3785 --
3786 -- set accounting line options
3787 --
3788 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3789 p_natural_side_code => 'C'
3790 , p_gain_or_loss_flag => 'N'
3791 , p_gl_transfer_mode_code => 'S'
3792 , p_acct_entry_type_code => 'A'
3793 , p_switch_side_flag => 'N'
3794 , p_merge_duplicate_code => 'N'
3795 );
3796 --
3797 l_acc_rev_natural_side_code := 'D'; -- 4262811
3798 --
3799 --
3800 -- set accounting line type info
3801 --
3802 xla_ae_lines_pkg.SetAcctLineType
3803 (p_component_type => l_component_type
3804 ,p_event_type_code => l_event_type_code
3805 ,p_line_definition_owner_code => l_line_definition_owner_code
3806 ,p_line_definition_code => l_line_definition_code
3810 ,p_amb_context_code => l_amb_context_code
3807 ,p_accounting_line_code => l_component_code
3808 ,p_accounting_line_type_code => l_component_type_code
3809 ,p_accounting_line_appl_id => l_component_appl_id
3811 ,p_entity_code => l_entity_code
3812 ,p_event_class_code => l_event_class_code);
3813 --
3814 -- set accounting class
3815 --
3816 xla_ae_lines_pkg.SetAcctClass(
3817 p_accounting_class_code => 'ACCOUNTSPAYABLE'
3818 , p_ae_header_id => l_ae_header_id
3819 );
3820
3821 --
3822 -- set rounding class
3823 --
3824 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3825 'ACCOUNTSPAYABLE';
3826
3827 --
3828 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3829 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3830 --
3831 -- bulk performance
3832 --
3833 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3834
3835 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3836 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3837
3838 -- 4955764
3839 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3840 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3841
3842 -- 4458381 Public Sector Enh
3843
3844 --
3845 -- set accounting attributes for the line type
3846 --
3847 l_entered_amt_idx := 8;
3848 l_accted_amt_idx := 13;
3849 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3850 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
3851 l_rec_acct_attrs.array_num_value(1) := p_source_14;
3852 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
3853 l_rec_acct_attrs.array_char_value(2) := p_source_15;
3854 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
3855 l_rec_acct_attrs.array_char_value(3) := p_source_16;
3856 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
3857 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_17);
3858 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
3859 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_18);
3860 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
3861 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_17);
3862 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
3863 l_rec_acct_attrs.array_char_value(7) := p_source_15;
3864 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
3865 l_rec_acct_attrs.array_num_value(8) := p_source_19;
3866 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
3867 l_rec_acct_attrs.array_char_value(9) := p_source_20;
3868 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
3869 l_rec_acct_attrs.array_date_value(10) := p_source_21;
3870 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
3871 l_rec_acct_attrs.array_num_value(11) := p_source_22;
3872 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
3873 l_rec_acct_attrs.array_char_value(12) := p_source_23;
3874 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
3875 l_rec_acct_attrs.array_num_value(13) := p_source_19;
3876
3877 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3878 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3879
3880 ---------------------------------------------------------------------------------------------------------------
3881 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3882 ---------------------------------------------------------------------------------------------------------------
3883 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3884
3885 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3886 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3887
3888 IF xla_accounting_cache_pkg.GetValueChar
3889 (p_source_code => 'LEDGER_CATEGORY_CODE'
3890 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3891 AND l_bflow_method_code = 'PRIOR_ENTRY'
3892 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3893 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3894 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3895 )
3896 THEN
3897 xla_ae_lines_pkg.BflowUpgEntry
3898 (p_business_method_code => l_bflow_method_code
3899 ,p_business_class_code => l_bflow_class_code
3900 ,p_balance_type => l_balance_type_code);
3901 ELSE
3902 NULL;
3903 -- No business flow processing for business flow method of NONE.
3904 END IF;
3905
3906 --
3907 -- call description
3908 --
3909
3910 xla_ae_lines_pkg.SetLineDescription(
3911 p_ae_header_id => l_ae_header_id
3912 ,p_description => Description_1 (
3913 p_application_id => p_application_id
3914 , p_ae_header_id => l_ae_header_id
3915 , p_source_1 => p_source_1
3916 , p_source_2 => p_source_2
3917 , p_source_3 => p_source_3
3918 )
3919 );
3920
3921
3922 --
3923 -- call ADRs
3924 -- Bug 4922099
3925 --
3929 )
3926 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3927 (NVL(l_actual_upg_option, 'N') = 'O') OR
3928 (NVL(l_enc_upg_option, 'N') = 'O')
3930 THEN
3931 NULL;
3932 --
3933 --
3934
3935 l_ccid := AcctDerRule_7(
3936 p_application_id => p_application_id
3937 , p_ae_header_id => l_ae_header_id
3938 , p_source_8 => p_source_8
3939 , x_transaction_coa_id => l_adr_transaction_coa_id
3940 , x_accounting_coa_id => l_adr_accounting_coa_id
3941 , x_value_type_code => l_adr_value_type_code
3942 , p_side => 'NA'
3943 );
3944
3945 xla_ae_lines_pkg.set_ccid(
3946 p_code_combination_id => l_ccid
3947 , p_value_type_code => l_adr_value_type_code
3948 , p_transaction_coa_id => l_adr_transaction_coa_id
3949 , p_accounting_coa_id => l_adr_accounting_coa_id
3950 , p_adr_code => 'FV_INV_DIST_ACCOUNT'
3951 , p_adr_type_code => 'S'
3952 , p_component_type => l_component_type
3953 , p_component_code => l_component_code
3954 , p_component_type_code => l_component_type_code
3955 , p_component_appl_id => l_component_appl_id
3956 , p_amb_context_code => l_amb_context_code
3957 , p_side => 'NA'
3958 );
3959
3960
3961 l_segment := AcctDerRule_6(
3962 p_application_id => p_application_id
3963 , p_ae_header_id => l_ae_header_id
3964 , p_source_11 => p_source_11
3965 , x_transaction_coa_id => l_adr_transaction_coa_id
3966 , x_accounting_coa_id => l_adr_accounting_coa_id
3967 , x_flexfield_segment_code => l_adr_flexfield_segment_code
3968 , x_flex_value_set_id => l_adr_flex_value_set_id
3969 , x_value_type_code => l_adr_value_type_code
3970 , x_value_combination_id => l_adr_value_combination_id
3971 , x_value_segment_code => l_adr_value_segment_code
3972 , p_side => 'NA'
3973 , p_override_seg_flag => 'Y'
3974 );
3975
3976 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
3977
3978 xla_ae_lines_pkg.set_segment(
3979 p_to_segment_code => 'GL_ACCOUNT'
3980 , p_segment_value => l_segment
3981 , p_from_segment_code => l_adr_value_segment_code
3982 , p_from_combination_id => l_adr_value_combination_id
3983 , p_value_type_code => l_adr_value_type_code
3984 , p_transaction_coa_id => l_adr_transaction_coa_id
3985 , p_accounting_coa_id => l_adr_accounting_coa_id
3986 , p_flexfield_segment_code => l_adr_flexfield_segment_code
3987 , p_flex_value_set_id => l_adr_flex_value_set_id
3988 , p_adr_code => 'FV_4X0201_TREASURY_PAY_ACCT'
3989 , p_adr_type_code => 'S'
3990 , p_component_type => l_component_type
3991 , p_component_code => l_component_code
3992 , p_component_type_code => l_component_type_code
3993 , p_component_appl_id => l_component_appl_id
3994 , p_amb_context_code => l_amb_context_code
3995 , p_entity_code => 'TREASURY_CONFIRMATION'
3996 , p_event_class_code => 'TREASURY_ACCOMPLISHMENT'
3997 , p_side => 'NA'
3998 );
3999
4000 END IF;
4001
4002 --
4003 --
4004 END IF;
4005 --
4006 -- Bug 4922099
4007 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4008 (NVL(l_enc_upg_option, 'N') = 'O')
4009 ) AND
4010 (l_bflow_method_code = 'PRIOR_ENTRY')
4011 )
4012 THEN
4013 IF
4014 --
4015 1 = 2
4016 --
4017 THEN
4018 xla_accounting_err_pkg.build_message
4019 (p_appli_s_name => 'XLA'
4020 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4021 ,p_token_1 => 'LINE_NUMBER'
4022 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4023 ,p_token_2 => 'LINE_TYPE_NAME'
4024 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4025 l_component_type
4026 ,l_component_code
4027 ,l_component_type_code
4028 ,l_component_appl_id
4029 ,l_amb_context_code
4030 ,l_entity_code
4031 ,l_event_class_code
4032 )
4033 ,p_token_3 => 'OWNER'
4034 ,p_value_3 => xla_lookups_pkg.get_meaning(
4035 p_lookup_type => 'XLA_OWNER_TYPE'
4036 ,p_lookup_code => l_component_type_code
4037 )
4038 ,p_token_4 => 'PRODUCT_NAME'
4042 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4039 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4040 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4041 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4043 ,p_ae_header_id => NULL
4044 );
4045
4046 IF (C_LEVEL_ERROR>= g_log_level) THEN
4047 trace
4048 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4049 ,p_level => C_LEVEL_ERROR
4050 ,p_module => l_log_module);
4051 END IF;
4052 END IF;
4053 END IF;
4054 --
4055 --
4056 ------------------------------------------------------------------------------------------------
4057 -- 4219869 Business Flow
4058 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4059 -- Prior Entry. Currently, the following code is always generated.
4060 ------------------------------------------------------------------------------------------------
4061 XLA_AE_LINES_PKG.ValidateCurrentLine;
4062
4063 ------------------------------------------------------------------------------------
4064 -- 4219869 Business Flow
4065 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4066 ------------------------------------------------------------------------------------
4067 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4068
4069 ----------------------------------------------------------------------------------
4070 -- 4219869 Business Flow
4071 -- Update journal entry status -- Need to generate this within IF <condition>
4072 ----------------------------------------------------------------------------------
4073 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4074 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4075 ,p_balance_type_code => l_balance_type_code
4076 );
4077
4078 -------------------------------------------------------------------------------------------
4079 -- 4262811 - Generate the Accrual Reversal lines
4080 -------------------------------------------------------------------------------------------
4081 BEGIN
4082 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4083 (g_array_event(p_event_id).array_value_num('header_index'));
4084 IF l_acc_rev_flag IS NULL THEN
4085 l_acc_rev_flag := 'N';
4086 END IF;
4087 EXCEPTION
4088 WHEN OTHERS THEN
4089 l_acc_rev_flag := 'N';
4090 END;
4091 --
4092 IF (l_acc_rev_flag = 'Y') THEN
4093
4094 -- 4645092 ------------------------------------------------------------------------------
4095 -- To allow MPA report to determine if it should generate report process
4096 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4097 ------------------------------------------------------------------------------------------
4098
4099 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4100 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4101
4102 --
4103 -- Update the line information that should be overwritten
4104 --
4105 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4106 p_header_num => 1);
4107 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4108
4109 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4110
4111 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4112 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4113 END IF;
4114
4115 --
4116 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4117 --
4118 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4119 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4120 ELSE
4121 ---------------------------------------------------------------------------------------------------
4122 -- 4262811a Switch Sign
4123 ---------------------------------------------------------------------------------------------------
4124 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4125 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4126 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4127 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4128 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4129 -- 5132302
4130 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4131 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4132
4133 END IF;
4134
4135 -- 4955764
4136 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4137 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4138
4139
4140 XLA_AE_LINES_PKG.ValidateCurrentLine;
4141 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4142
4143 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4147 END IF;
4144 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4145 ,p_balance_type_code => l_balance_type_code);
4146
4148
4149 -----------------------------------------------------------------------------------------
4150 -- 4262811 Multiperiod Accounting
4151 -----------------------------------------------------------------------------------------
4152 -- No MPA option is assigned.
4153
4154
4155 END IF;
4156 END IF;
4157 --
4158
4159 --
4160 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4161 trace
4162 (p_msg => 'END of AcctLineType_13'
4163 ,p_level => C_LEVEL_PROCEDURE
4164 ,p_module => l_log_module);
4165 END IF;
4166 --
4167 EXCEPTION
4168 WHEN xla_exceptions_pkg.application_exception THEN
4169 RAISE;
4170 WHEN OTHERS THEN
4171 xla_exceptions_pkg.raise_message
4172 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctLineType_13');
4173 END AcctLineType_13;
4174 --
4175
4176 ---------------------------------------
4177 --
4178 -- PRIVATE FUNCTION
4179 -- AcctLineType_14
4180 --
4181 ---------------------------------------
4182 PROCEDURE AcctLineType_14 (
4183 p_application_id IN NUMBER
4184 ,p_event_id IN NUMBER
4185 ,p_calculate_acctd_flag IN VARCHAR2
4186 ,p_calculate_g_l_flag IN VARCHAR2
4187 ,p_actual_flag IN OUT VARCHAR2
4188 ,p_balance_type_code OUT VARCHAR2
4189 ,p_gain_or_loss_ref OUT VARCHAR2
4190
4191 --FV_BUS_FLOW_FV_APP_ID
4192 , p_source_14 IN NUMBER
4193 --FV_BUS_FLOW_TREASURY_DIST_TYPE
4194 , p_source_15 IN VARCHAR2
4195 --FV_BUS_FLOW_TREAS_ENTITY_CODE
4196 , p_source_16 IN VARCHAR2
4197 --FV_PAY_HIST_DIST_ID
4198 , p_source_17 IN NUMBER
4199 --FV_TREASURY_CONFIRMATION_ID
4200 , p_source_18 IN NUMBER
4201 --FV_PAY_DIST_AMOUNT
4202 , p_source_19 IN NUMBER
4203 --FV_INV_CURRENCY_CODE
4204 , p_source_20 IN VARCHAR2
4205 --FV_REV_PAY_HIST_DIST_ID
4206 , p_source_24 IN NUMBER
4207 )
4208 IS
4209
4210 l_component_type VARCHAR2(80);
4211 l_component_code VARCHAR2(30);
4212 l_component_type_code VARCHAR2(1);
4213 l_component_appl_id INTEGER;
4214 l_amb_context_code VARCHAR2(30);
4215 l_entity_code VARCHAR2(30);
4216 l_event_class_code VARCHAR2(30);
4217 l_ae_header_id NUMBER;
4218 l_event_type_code VARCHAR2(30);
4219 l_line_definition_code VARCHAR2(30);
4220 l_line_definition_owner_code VARCHAR2(1);
4221 --
4222 -- adr variables
4223 l_segment VARCHAR2(30);
4224 l_ccid NUMBER;
4225 l_adr_transaction_coa_id NUMBER;
4226 l_adr_accounting_coa_id NUMBER;
4227 l_adr_flexfield_segment_code VARCHAR2(30);
4228 l_adr_flex_value_set_id NUMBER;
4229 l_adr_value_type_code VARCHAR2(30);
4230 l_adr_value_combination_id NUMBER;
4231 l_adr_value_segment_code VARCHAR2(30);
4232
4233 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4234 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4235 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4236 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4237
4238 -- 4262811 Variables ------------------------------------------------------------------------------------------
4239 l_entered_amt_idx NUMBER;
4240 l_accted_amt_idx NUMBER;
4241 l_acc_rev_flag VARCHAR2(1);
4242 l_accrual_line_num NUMBER;
4243 l_tmp_amt NUMBER;
4244 l_acc_rev_natural_side_code VARCHAR2(1);
4245
4246 l_num_entries NUMBER;
4247 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4248 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4249 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4250 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4251 l_recog_line_1 NUMBER;
4252 l_recog_line_2 NUMBER;
4253
4254 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4255 l_bflow_applied_to_amt NUMBER; -- 5132302
4256 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4257
4258 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4259
4260 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4261 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4262
4263 ---------------------------------------------------------------------------------------------------------------
4264
4265
4266 --
4267 -- bulk performance
4268 --
4269 l_balance_type_code VARCHAR2(1);
4270 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4271 l_log_module VARCHAR2(240);
4272
4273 --
4274 -- Upgrade strategy
4275 --
4276 l_actual_upg_option VARCHAR2(1);
4277 l_enc_upg_option VARCHAR2(1);
4278
4279 --
4280 BEGIN
4281 --
4282 IF g_log_enabled THEN
4283 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_14';
4284 END IF;
4285 --
4286 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4287
4288 trace
4289 (p_msg => 'BEGIN of AcctLineType_14'
4290 ,p_level => C_LEVEL_PROCEDURE
4291 ,p_module => l_log_module);
4292
4293 END IF;
4294 --
4295 l_component_type := 'AMB_JLT';
4299 l_amb_context_code := 'DEFAULT';
4296 l_component_code := 'FV_TC_PAID_ACCT_REV_DR';
4297 l_component_type_code := 'S';
4298 l_component_appl_id := 8901;
4300 l_entity_code := 'TREASURY_CONFIRMATION';
4301 l_event_class_code := 'TREASURY_ACCOMPLISHMENT';
4302 l_event_type_code := 'TREASURY_ACCOMPLISHMENT_ALL';
4303 l_line_definition_owner_code := 'S';
4304 l_line_definition_code := 'FV_TREASURY_PAYMENTS_ALL';
4305 --
4306 l_balance_type_code := 'A';
4307 l_segment := NULL;
4308 l_ccid := NULL;
4309 l_adr_transaction_coa_id := NULL;
4310 l_adr_accounting_coa_id := NULL;
4311 l_adr_flexfield_segment_code := NULL;
4312 l_adr_flex_value_set_id := NULL;
4313 l_adr_value_type_code := NULL;
4314 l_adr_value_combination_id := NULL;
4315 l_adr_value_segment_code := NULL;
4316
4317 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
4318 l_bflow_class_code := 'FV_TC_PAID_CR'; -- 4219869 Business Flow
4319 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
4320 l_budgetary_control_flag := 'N';
4321
4322 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4323 l_bflow_applied_to_amt := NULL; -- 5132302
4324 l_entered_amt_idx := NULL; -- 4262811
4325 l_accted_amt_idx := NULL; -- 4262811
4326 l_acc_rev_flag := NULL; -- 4262811
4327 l_accrual_line_num := NULL; -- 4262811
4328 l_tmp_amt := NULL; -- 4262811
4329 --
4330
4331 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4332 l_balance_type_code <> 'B' THEN
4333 IF NVL(
4334 xla_ae_sources_pkg.GetSystemSourceChar(
4335 p_source_code => 'XLA_EVENT_TYPE_CODE'
4336 , p_source_type_code => 'Y'
4337 , p_source_application_id => 602
4338 ),'
4339 ') = 'TREASURY_BACKOUT' OR
4340 NVL(
4341 xla_ae_sources_pkg.GetSystemSourceChar(
4342 p_source_code => 'XLA_EVENT_TYPE_CODE'
4343 , p_source_type_code => 'Y'
4344 , p_source_application_id => 602
4345 ),'
4346 ') = 'TREASURY_VOID'
4347 THEN
4348
4349 --
4350 XLA_AE_LINES_PKG.SetNewLine;
4351
4352 p_balance_type_code := l_balance_type_code;
4353 -- set the flag so later we will know whether the gain loss line needs to be created
4354
4355 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4356 p_actual_flag :='A';
4357 END IF;
4358
4359 --
4360 -- bulk performance
4361 --
4362 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4363 p_header_num => 0); -- 4262811
4364 --
4365 -- set accounting line options
4366 --
4367 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4368 p_natural_side_code => 'D'
4369 , p_gain_or_loss_flag => 'N'
4370 , p_gl_transfer_mode_code => 'S'
4371 , p_acct_entry_type_code => 'A'
4372 , p_switch_side_flag => 'N'
4373 , p_merge_duplicate_code => 'N'
4374 );
4375 --
4376 l_acc_rev_natural_side_code := 'C'; -- 4262811
4377 --
4378 --
4379 -- set accounting line type info
4380 --
4381 xla_ae_lines_pkg.SetAcctLineType
4382 (p_component_type => l_component_type
4383 ,p_event_type_code => l_event_type_code
4384 ,p_line_definition_owner_code => l_line_definition_owner_code
4385 ,p_line_definition_code => l_line_definition_code
4386 ,p_accounting_line_code => l_component_code
4387 ,p_accounting_line_type_code => l_component_type_code
4388 ,p_accounting_line_appl_id => l_component_appl_id
4389 ,p_amb_context_code => l_amb_context_code
4390 ,p_entity_code => l_entity_code
4391 ,p_event_class_code => l_event_class_code);
4392 --
4393 -- set accounting class
4394 --
4395 xla_ae_lines_pkg.SetAcctClass(
4396 p_accounting_class_code => 'ACCOUNTSPAYABLE'
4397 , p_ae_header_id => l_ae_header_id
4398 );
4399
4400 --
4401 -- set rounding class
4402 --
4403 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4404 'ACCOUNTSPAYABLE';
4405
4406 --
4407 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4408 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4409 --
4410 -- bulk performance
4411 --
4412 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4413
4414 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4415 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4416
4417 -- 4955764
4418 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4419 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4420
4421 -- 4458381 Public Sector Enh
4422
4423 --
4424 -- set accounting attributes for the line type
4425 --
4426 l_entered_amt_idx := 8;
4427 l_accted_amt_idx := 10;
4428 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4429 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
4430 l_rec_acct_attrs.array_num_value(1) := p_source_14;
4434 l_rec_acct_attrs.array_char_value(3) := p_source_16;
4431 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
4432 l_rec_acct_attrs.array_char_value(2) := p_source_15;
4433 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
4435 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
4436 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_24);
4437 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
4438 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_18);
4439 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
4440 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_17);
4441 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
4442 l_rec_acct_attrs.array_char_value(7) := p_source_15;
4443 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
4444 l_rec_acct_attrs.array_num_value(8) := p_source_19;
4445 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
4446 l_rec_acct_attrs.array_char_value(9) := p_source_20;
4447 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
4448 l_rec_acct_attrs.array_num_value(10) := p_source_19;
4449
4450 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4451 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4452
4453 ---------------------------------------------------------------------------------------------------------------
4454 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4455 ---------------------------------------------------------------------------------------------------------------
4456 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4457
4458 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4459 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4460
4461 IF xla_accounting_cache_pkg.GetValueChar
4462 (p_source_code => 'LEDGER_CATEGORY_CODE'
4463 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4464 AND l_bflow_method_code = 'PRIOR_ENTRY'
4465 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4466 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4467 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4468 )
4469 THEN
4470 xla_ae_lines_pkg.BflowUpgEntry
4471 (p_business_method_code => l_bflow_method_code
4472 ,p_business_class_code => l_bflow_class_code
4473 ,p_balance_type => l_balance_type_code);
4474 ELSE
4475 NULL;
4476 XLA_AE_LINES_PKG.business_flow_validation(
4477 p_business_method_code => l_bflow_method_code
4478 ,p_business_class_code => l_bflow_class_code
4479 ,p_inherit_description_flag => l_inherit_desc_flag);
4480 END IF;
4481
4482 --
4483 -- call description
4484 --
4485 -- No description or it is inherited.
4486 --
4487 -- call ADRs
4488 -- Bug 4922099
4489 --
4490 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4491 (NVL(l_actual_upg_option, 'N') = 'O') OR
4492 (NVL(l_enc_upg_option, 'N') = 'O')
4493 )
4494 THEN
4495 NULL;
4496 --
4497 --
4498
4499 --
4500 --
4501 END IF;
4502 --
4503 -- Bug 4922099
4504 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4505 (NVL(l_enc_upg_option, 'N') = 'O')
4506 ) AND
4507 (l_bflow_method_code = 'PRIOR_ENTRY')
4508 )
4509 THEN
4510 IF
4511 --
4512 1 = 1
4513 --
4514 THEN
4515 xla_accounting_err_pkg.build_message
4516 (p_appli_s_name => 'XLA'
4517 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4518 ,p_token_1 => 'LINE_NUMBER'
4519 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4520 ,p_token_2 => 'LINE_TYPE_NAME'
4521 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4522 l_component_type
4523 ,l_component_code
4524 ,l_component_type_code
4525 ,l_component_appl_id
4526 ,l_amb_context_code
4527 ,l_entity_code
4528 ,l_event_class_code
4529 )
4530 ,p_token_3 => 'OWNER'
4531 ,p_value_3 => xla_lookups_pkg.get_meaning(
4532 p_lookup_type => 'XLA_OWNER_TYPE'
4533 ,p_lookup_code => l_component_type_code
4534 )
4535 ,p_token_4 => 'PRODUCT_NAME'
4539 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4536 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4537 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4538 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4540 ,p_ae_header_id => NULL
4541 );
4542
4543 IF (C_LEVEL_ERROR>= g_log_level) THEN
4544 trace
4545 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4546 ,p_level => C_LEVEL_ERROR
4547 ,p_module => l_log_module);
4548 END IF;
4549 END IF;
4550 END IF;
4551 --
4552 --
4553 ------------------------------------------------------------------------------------------------
4554 -- 4219869 Business Flow
4555 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4556 -- Prior Entry. Currently, the following code is always generated.
4557 ------------------------------------------------------------------------------------------------
4558 -- No ValidateCurrentLine for business flow method of Prior Entry
4559
4560 ------------------------------------------------------------------------------------
4561 -- 4219869 Business Flow
4562 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4563 ------------------------------------------------------------------------------------
4564 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4565
4566 ----------------------------------------------------------------------------------
4567 -- 4219869 Business Flow
4568 -- Update journal entry status -- Need to generate this within IF <condition>
4569 ----------------------------------------------------------------------------------
4570 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4571 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4572 ,p_balance_type_code => l_balance_type_code
4573 );
4574
4575 -------------------------------------------------------------------------------------------
4576 -- 4262811 - Generate the Accrual Reversal lines
4577 -------------------------------------------------------------------------------------------
4578 BEGIN
4579 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4580 (g_array_event(p_event_id).array_value_num('header_index'));
4581 IF l_acc_rev_flag IS NULL THEN
4582 l_acc_rev_flag := 'N';
4583 END IF;
4584 EXCEPTION
4585 WHEN OTHERS THEN
4586 l_acc_rev_flag := 'N';
4587 END;
4588 --
4589 IF (l_acc_rev_flag = 'Y') THEN
4590
4591 -- 4645092 ------------------------------------------------------------------------------
4592 -- To allow MPA report to determine if it should generate report process
4593 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4594 ------------------------------------------------------------------------------------------
4595
4596 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4597 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4598
4599 --
4600 -- Update the line information that should be overwritten
4601 --
4602 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4603 p_header_num => 1);
4604 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4605
4606 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4607
4608 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4609 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4610 END IF;
4611
4612 --
4613 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4614 --
4615 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4616 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4617 ELSE
4618 ---------------------------------------------------------------------------------------------------
4619 -- 4262811a Switch Sign
4620 ---------------------------------------------------------------------------------------------------
4621 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4622 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4623 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4624 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4625 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4626 -- 5132302
4627 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4628 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4629
4630 END IF;
4631
4632 -- 4955764
4633 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4634 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4635
4636
4637 XLA_AE_LINES_PKG.ValidateCurrentLine;
4641 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4638 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4639
4640 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4642 ,p_balance_type_code => l_balance_type_code);
4643
4644 END IF;
4645
4646 -----------------------------------------------------------------------------------------
4647 -- 4262811 Multiperiod Accounting
4648 -----------------------------------------------------------------------------------------
4649 -- No MPA option is assigned.
4650
4651
4652 END IF;
4653 END IF;
4654 --
4655
4656 --
4657 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4658 trace
4659 (p_msg => 'END of AcctLineType_14'
4660 ,p_level => C_LEVEL_PROCEDURE
4661 ,p_module => l_log_module);
4662 END IF;
4663 --
4664 EXCEPTION
4665 WHEN xla_exceptions_pkg.application_exception THEN
4666 RAISE;
4667 WHEN OTHERS THEN
4668 xla_exceptions_pkg.raise_message
4669 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctLineType_14');
4670 END AcctLineType_14;
4671 --
4672
4673 ---------------------------------------
4674 --
4675 -- PRIVATE FUNCTION
4676 -- AcctLineType_15
4677 --
4678 ---------------------------------------
4679 PROCEDURE AcctLineType_15 (
4680 p_application_id IN NUMBER
4681 ,p_event_id IN NUMBER
4682 ,p_calculate_acctd_flag IN VARCHAR2
4683 ,p_calculate_g_l_flag IN VARCHAR2
4684 ,p_actual_flag IN OUT VARCHAR2
4685 ,p_balance_type_code OUT VARCHAR2
4686 ,p_gain_or_loss_ref OUT VARCHAR2
4687
4688 --FV_CHECK_NUMBER
4689 , p_source_1 IN NUMBER
4690 --FV_CHECK_DATE
4691 , p_source_2 IN DATE
4692 --FV_TREASURY_PAY_NUMBER
4693 , p_source_3 IN NUMBER
4694 --FV_INV_DIST_CCID
4695 , p_source_8 IN NUMBER
4696 --FV_INV_TYPE_LOOKUP_CODE
4697 , p_source_11 IN VARCHAR2
4698 --FV_BUS_FLOW_FV_APP_ID
4699 , p_source_14 IN NUMBER
4700 --FV_BUS_FLOW_TREASURY_DIST_TYPE
4701 , p_source_15 IN VARCHAR2
4702 --FV_BUS_FLOW_TREAS_ENTITY_CODE
4703 , p_source_16 IN VARCHAR2
4704 --FV_PAY_HIST_DIST_ID
4705 , p_source_17 IN NUMBER
4706 --FV_TREASURY_CONFIRMATION_ID
4707 , p_source_18 IN NUMBER
4708 --FV_PAY_DIST_AMOUNT
4709 , p_source_19 IN NUMBER
4710 --FV_INV_CURRENCY_CODE
4711 , p_source_20 IN VARCHAR2
4712 --FV_INV_EXCHANGE_DATE
4713 , p_source_21 IN DATE
4714 --FV_INV_EXCHANGE_RATE
4715 , p_source_22 IN NUMBER
4716 --FV_INV_EXCHANGE_RATE_TYPE
4717 , p_source_23 IN VARCHAR2
4718 )
4719 IS
4720
4721 l_component_type VARCHAR2(80);
4722 l_component_code VARCHAR2(30);
4723 l_component_type_code VARCHAR2(1);
4724 l_component_appl_id INTEGER;
4725 l_amb_context_code VARCHAR2(30);
4726 l_entity_code VARCHAR2(30);
4727 l_event_class_code VARCHAR2(30);
4728 l_ae_header_id NUMBER;
4729 l_event_type_code VARCHAR2(30);
4730 l_line_definition_code VARCHAR2(30);
4731 l_line_definition_owner_code VARCHAR2(1);
4732 --
4733 -- adr variables
4734 l_segment VARCHAR2(30);
4735 l_ccid NUMBER;
4736 l_adr_transaction_coa_id NUMBER;
4737 l_adr_accounting_coa_id NUMBER;
4738 l_adr_flexfield_segment_code VARCHAR2(30);
4739 l_adr_flex_value_set_id NUMBER;
4740 l_adr_value_type_code VARCHAR2(30);
4741 l_adr_value_combination_id NUMBER;
4742 l_adr_value_segment_code VARCHAR2(30);
4743
4744 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4745 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4746 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4747 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4748
4749 -- 4262811 Variables ------------------------------------------------------------------------------------------
4750 l_entered_amt_idx NUMBER;
4751 l_accted_amt_idx NUMBER;
4752 l_acc_rev_flag VARCHAR2(1);
4753 l_accrual_line_num NUMBER;
4754 l_tmp_amt NUMBER;
4755 l_acc_rev_natural_side_code VARCHAR2(1);
4756
4757 l_num_entries NUMBER;
4758 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4759 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4760 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4761 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4762 l_recog_line_1 NUMBER;
4763 l_recog_line_2 NUMBER;
4764
4765 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4766 l_bflow_applied_to_amt NUMBER; -- 5132302
4767 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4768
4769 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4770
4771 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4772 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4773
4774 ---------------------------------------------------------------------------------------------------------------
4775
4776
4777 --
4778 -- bulk performance
4779 --
4780 l_balance_type_code VARCHAR2(1);
4784 --
4781 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4782 l_log_module VARCHAR2(240);
4783
4785 -- Upgrade strategy
4786 --
4787 l_actual_upg_option VARCHAR2(1);
4788 l_enc_upg_option VARCHAR2(1);
4789
4790 --
4791 BEGIN
4792 --
4793 IF g_log_enabled THEN
4794 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_15';
4795 END IF;
4796 --
4797 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4798
4799 trace
4800 (p_msg => 'BEGIN of AcctLineType_15'
4801 ,p_level => C_LEVEL_PROCEDURE
4802 ,p_module => l_log_module);
4803
4804 END IF;
4805 --
4806 l_component_type := 'AMB_JLT';
4807 l_component_code := 'FV_TC_UNPAID_ACCT_DR';
4808 l_component_type_code := 'S';
4809 l_component_appl_id := 8901;
4810 l_amb_context_code := 'DEFAULT';
4811 l_entity_code := 'TREASURY_CONFIRMATION';
4812 l_event_class_code := 'TREASURY_ACCOMPLISHMENT';
4813 l_event_type_code := 'TREASURY_ACCOMPLISHMENT_ALL';
4814 l_line_definition_owner_code := 'S';
4815 l_line_definition_code := 'FV_TREASURY_PAYMENTS_ALL';
4816 --
4817 l_balance_type_code := 'A';
4818 l_segment := NULL;
4819 l_ccid := NULL;
4820 l_adr_transaction_coa_id := NULL;
4821 l_adr_accounting_coa_id := NULL;
4822 l_adr_flexfield_segment_code := NULL;
4823 l_adr_flex_value_set_id := NULL;
4824 l_adr_value_type_code := NULL;
4825 l_adr_value_combination_id := NULL;
4826 l_adr_value_segment_code := NULL;
4827
4828 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
4829 l_bflow_class_code := 'FV_TC_PAID_DR'; -- 4219869 Business Flow
4830 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
4831 l_budgetary_control_flag := 'N';
4832
4833 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4834 l_bflow_applied_to_amt := NULL; -- 5132302
4835 l_entered_amt_idx := NULL; -- 4262811
4836 l_accted_amt_idx := NULL; -- 4262811
4837 l_acc_rev_flag := NULL; -- 4262811
4838 l_accrual_line_num := NULL; -- 4262811
4839 l_tmp_amt := NULL; -- 4262811
4840 --
4841
4842 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4843 l_balance_type_code <> 'B' THEN
4844 IF NVL(
4845 xla_ae_sources_pkg.GetSystemSourceChar(
4846 p_source_code => 'XLA_EVENT_TYPE_CODE'
4847 , p_source_type_code => 'Y'
4848 , p_source_application_id => 602
4849 ),'
4850 ') = 'TREASURY_CONFIRM'
4851 THEN
4852
4853 --
4854 XLA_AE_LINES_PKG.SetNewLine;
4855
4856 p_balance_type_code := l_balance_type_code;
4857 -- set the flag so later we will know whether the gain loss line needs to be created
4858
4859 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4860 p_actual_flag :='A';
4861 END IF;
4862
4863 --
4864 -- bulk performance
4865 --
4866 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4867 p_header_num => 0); -- 4262811
4868 --
4869 -- set accounting line options
4870 --
4871 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4872 p_natural_side_code => 'D'
4873 , p_gain_or_loss_flag => 'N'
4874 , p_gl_transfer_mode_code => 'S'
4875 , p_acct_entry_type_code => 'A'
4876 , p_switch_side_flag => 'N'
4877 , p_merge_duplicate_code => 'N'
4878 );
4879 --
4880 l_acc_rev_natural_side_code := 'C'; -- 4262811
4881 --
4882 --
4883 -- set accounting line type info
4884 --
4885 xla_ae_lines_pkg.SetAcctLineType
4886 (p_component_type => l_component_type
4887 ,p_event_type_code => l_event_type_code
4888 ,p_line_definition_owner_code => l_line_definition_owner_code
4889 ,p_line_definition_code => l_line_definition_code
4890 ,p_accounting_line_code => l_component_code
4891 ,p_accounting_line_type_code => l_component_type_code
4892 ,p_accounting_line_appl_id => l_component_appl_id
4893 ,p_amb_context_code => l_amb_context_code
4894 ,p_entity_code => l_entity_code
4895 ,p_event_class_code => l_event_class_code);
4896 --
4897 -- set accounting class
4898 --
4899 xla_ae_lines_pkg.SetAcctClass(
4900 p_accounting_class_code => 'ACCOUNTSPAYABLE'
4901 , p_ae_header_id => l_ae_header_id
4902 );
4903
4904 --
4905 -- set rounding class
4906 --
4907 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4908 'ACCOUNTSPAYABLE';
4909
4910 --
4911 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4912 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4913 --
4914 -- bulk performance
4915 --
4916 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4917
4918 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4919 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4920
4921 -- 4955764
4922 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4926
4923 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4924
4925 -- 4458381 Public Sector Enh
4927 --
4928 -- set accounting attributes for the line type
4929 --
4930 l_entered_amt_idx := 8;
4931 l_accted_amt_idx := 13;
4932 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4933 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
4934 l_rec_acct_attrs.array_num_value(1) := p_source_14;
4935 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
4936 l_rec_acct_attrs.array_char_value(2) := p_source_15;
4937 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
4938 l_rec_acct_attrs.array_char_value(3) := p_source_16;
4939 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
4940 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_17);
4941 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
4942 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_18);
4943 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
4944 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_17);
4945 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
4946 l_rec_acct_attrs.array_char_value(7) := p_source_15;
4947 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
4948 l_rec_acct_attrs.array_num_value(8) := p_source_19;
4949 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
4950 l_rec_acct_attrs.array_char_value(9) := p_source_20;
4951 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
4952 l_rec_acct_attrs.array_date_value(10) := p_source_21;
4953 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
4954 l_rec_acct_attrs.array_num_value(11) := p_source_22;
4955 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
4956 l_rec_acct_attrs.array_char_value(12) := p_source_23;
4957 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
4958 l_rec_acct_attrs.array_num_value(13) := p_source_19;
4959
4960 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4961 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4962
4963 ---------------------------------------------------------------------------------------------------------------
4964 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4965 ---------------------------------------------------------------------------------------------------------------
4966 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4967
4968 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4969 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4970
4971 IF xla_accounting_cache_pkg.GetValueChar
4972 (p_source_code => 'LEDGER_CATEGORY_CODE'
4973 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4974 AND l_bflow_method_code = 'PRIOR_ENTRY'
4975 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4976 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4977 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4978 )
4979 THEN
4980 xla_ae_lines_pkg.BflowUpgEntry
4981 (p_business_method_code => l_bflow_method_code
4982 ,p_business_class_code => l_bflow_class_code
4983 ,p_balance_type => l_balance_type_code);
4984 ELSE
4985 NULL;
4986 -- No business flow processing for business flow method of NONE.
4987 END IF;
4988
4989 --
4990 -- call description
4991 --
4992
4993 xla_ae_lines_pkg.SetLineDescription(
4994 p_ae_header_id => l_ae_header_id
4995 ,p_description => Description_1 (
4996 p_application_id => p_application_id
4997 , p_ae_header_id => l_ae_header_id
4998 , p_source_1 => p_source_1
4999 , p_source_2 => p_source_2
5000 , p_source_3 => p_source_3
5001 )
5002 );
5003
5004
5005 --
5006 -- call ADRs
5007 -- Bug 4922099
5008 --
5009 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5010 (NVL(l_actual_upg_option, 'N') = 'O') OR
5011 (NVL(l_enc_upg_option, 'N') = 'O')
5012 )
5013 THEN
5014 NULL;
5015 --
5016 --
5017
5018 l_ccid := AcctDerRule_7(
5019 p_application_id => p_application_id
5020 , p_ae_header_id => l_ae_header_id
5021 , p_source_8 => p_source_8
5022 , x_transaction_coa_id => l_adr_transaction_coa_id
5023 , x_accounting_coa_id => l_adr_accounting_coa_id
5024 , x_value_type_code => l_adr_value_type_code
5025 , p_side => 'NA'
5026 );
5027
5028 xla_ae_lines_pkg.set_ccid(
5029 p_code_combination_id => l_ccid
5030 , p_value_type_code => l_adr_value_type_code
5031 , p_transaction_coa_id => l_adr_transaction_coa_id
5032 , p_accounting_coa_id => l_adr_accounting_coa_id
5033 , p_adr_code => 'FV_INV_DIST_ACCOUNT'
5034 , p_adr_type_code => 'S'
5035 , p_component_type => l_component_type
5036 , p_component_code => l_component_code
5037 , p_component_type_code => l_component_type_code
5038 , p_component_appl_id => l_component_appl_id
5039 , p_amb_context_code => l_amb_context_code
5040 , p_side => 'NA'
5041 );
5042
5043
5044 l_segment := AcctDerRule_5(
5048 , x_transaction_coa_id => l_adr_transaction_coa_id
5045 p_application_id => p_application_id
5046 , p_ae_header_id => l_ae_header_id
5047 , p_source_11 => p_source_11
5049 , x_accounting_coa_id => l_adr_accounting_coa_id
5050 , x_flexfield_segment_code => l_adr_flexfield_segment_code
5051 , x_flex_value_set_id => l_adr_flex_value_set_id
5052 , x_value_type_code => l_adr_value_type_code
5053 , x_value_combination_id => l_adr_value_combination_id
5054 , x_value_segment_code => l_adr_value_segment_code
5055 , p_side => 'NA'
5056 , p_override_seg_flag => 'Y'
5057 );
5058
5059 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
5060
5061 xla_ae_lines_pkg.set_segment(
5062 p_to_segment_code => 'GL_ACCOUNT'
5063 , p_segment_value => l_segment
5064 , p_from_segment_code => l_adr_value_segment_code
5065 , p_from_combination_id => l_adr_value_combination_id
5066 , p_value_type_code => l_adr_value_type_code
5067 , p_transaction_coa_id => l_adr_transaction_coa_id
5068 , p_accounting_coa_id => l_adr_accounting_coa_id
5069 , p_flexfield_segment_code => l_adr_flexfield_segment_code
5070 , p_flex_value_set_id => l_adr_flex_value_set_id
5071 , p_adr_code => 'FV_4X0101_TREASURY_PAY_ACCT'
5072 , p_adr_type_code => 'S'
5073 , p_component_type => l_component_type
5074 , p_component_code => l_component_code
5075 , p_component_type_code => l_component_type_code
5076 , p_component_appl_id => l_component_appl_id
5077 , p_amb_context_code => l_amb_context_code
5078 , p_entity_code => 'TREASURY_CONFIRMATION'
5079 , p_event_class_code => 'TREASURY_ACCOMPLISHMENT'
5080 , p_side => 'NA'
5081 );
5082
5083 END IF;
5084
5085 --
5086 --
5087 END IF;
5088 --
5089 -- Bug 4922099
5090 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5091 (NVL(l_enc_upg_option, 'N') = 'O')
5092 ) AND
5093 (l_bflow_method_code = 'PRIOR_ENTRY')
5094 )
5095 THEN
5096 IF
5097 --
5098 1 = 2
5099 --
5100 THEN
5101 xla_accounting_err_pkg.build_message
5102 (p_appli_s_name => 'XLA'
5103 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5104 ,p_token_1 => 'LINE_NUMBER'
5105 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5106 ,p_token_2 => 'LINE_TYPE_NAME'
5107 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5108 l_component_type
5109 ,l_component_code
5110 ,l_component_type_code
5111 ,l_component_appl_id
5112 ,l_amb_context_code
5113 ,l_entity_code
5114 ,l_event_class_code
5115 )
5116 ,p_token_3 => 'OWNER'
5117 ,p_value_3 => xla_lookups_pkg.get_meaning(
5118 p_lookup_type => 'XLA_OWNER_TYPE'
5119 ,p_lookup_code => l_component_type_code
5120 )
5121 ,p_token_4 => 'PRODUCT_NAME'
5122 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5123 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5124 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5125 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5126 ,p_ae_header_id => NULL
5127 );
5128
5129 IF (C_LEVEL_ERROR>= g_log_level) THEN
5130 trace
5131 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5132 ,p_level => C_LEVEL_ERROR
5133 ,p_module => l_log_module);
5134 END IF;
5135 END IF;
5136 END IF;
5137 --
5138 --
5139 ------------------------------------------------------------------------------------------------
5140 -- 4219869 Business Flow
5141 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5142 -- Prior Entry. Currently, the following code is always generated.
5143 ------------------------------------------------------------------------------------------------
5144 XLA_AE_LINES_PKG.ValidateCurrentLine;
5145
5146 ------------------------------------------------------------------------------------
5147 -- 4219869 Business Flow
5151
5148 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5149 ------------------------------------------------------------------------------------
5150 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5152 ----------------------------------------------------------------------------------
5153 -- 4219869 Business Flow
5154 -- Update journal entry status -- Need to generate this within IF <condition>
5155 ----------------------------------------------------------------------------------
5156 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5157 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5158 ,p_balance_type_code => l_balance_type_code
5159 );
5160
5161 -------------------------------------------------------------------------------------------
5162 -- 4262811 - Generate the Accrual Reversal lines
5163 -------------------------------------------------------------------------------------------
5164 BEGIN
5165 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5166 (g_array_event(p_event_id).array_value_num('header_index'));
5167 IF l_acc_rev_flag IS NULL THEN
5168 l_acc_rev_flag := 'N';
5169 END IF;
5170 EXCEPTION
5171 WHEN OTHERS THEN
5172 l_acc_rev_flag := 'N';
5173 END;
5174 --
5175 IF (l_acc_rev_flag = 'Y') THEN
5176
5177 -- 4645092 ------------------------------------------------------------------------------
5178 -- To allow MPA report to determine if it should generate report process
5179 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5180 ------------------------------------------------------------------------------------------
5181
5182 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5183 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5184
5185 --
5186 -- Update the line information that should be overwritten
5187 --
5188 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5189 p_header_num => 1);
5190 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5191
5192 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5193
5194 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5195 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5196 END IF;
5197
5198 --
5199 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5200 --
5201 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5202 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5203 ELSE
5204 ---------------------------------------------------------------------------------------------------
5205 -- 4262811a Switch Sign
5206 ---------------------------------------------------------------------------------------------------
5207 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5208 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5209 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5210 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5211 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5212 -- 5132302
5213 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5214 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5215
5216 END IF;
5217
5218 -- 4955764
5219 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5220 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5221
5222
5223 XLA_AE_LINES_PKG.ValidateCurrentLine;
5224 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5225
5226 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5227 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5228 ,p_balance_type_code => l_balance_type_code);
5229
5230 END IF;
5231
5232 -----------------------------------------------------------------------------------------
5233 -- 4262811 Multiperiod Accounting
5234 -----------------------------------------------------------------------------------------
5235 -- No MPA option is assigned.
5236
5237
5238 END IF;
5239 END IF;
5240 --
5241
5242 --
5243 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5244 trace
5245 (p_msg => 'END of AcctLineType_15'
5246 ,p_level => C_LEVEL_PROCEDURE
5247 ,p_module => l_log_module);
5248 END IF;
5249 --
5250 EXCEPTION
5251 WHEN xla_exceptions_pkg.application_exception THEN
5252 RAISE;
5253 WHEN OTHERS THEN
5254 xla_exceptions_pkg.raise_message
5255 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctLineType_15');
5256 END AcctLineType_15;
5257 --
5258
5259 ---------------------------------------
5260 --
5261 -- PRIVATE FUNCTION
5262 -- AcctLineType_16
5263 --
5264 ---------------------------------------
5265 PROCEDURE AcctLineType_16 (
5266 p_application_id IN NUMBER
5267 ,p_event_id IN NUMBER
5268 ,p_calculate_acctd_flag IN VARCHAR2
5272 ,p_gain_or_loss_ref OUT VARCHAR2
5269 ,p_calculate_g_l_flag IN VARCHAR2
5270 ,p_actual_flag IN OUT VARCHAR2
5271 ,p_balance_type_code OUT VARCHAR2
5273
5274 --FV_BUS_FLOW_FV_APP_ID
5275 , p_source_14 IN NUMBER
5276 --FV_BUS_FLOW_TREASURY_DIST_TYPE
5277 , p_source_15 IN VARCHAR2
5278 --FV_BUS_FLOW_TREAS_ENTITY_CODE
5279 , p_source_16 IN VARCHAR2
5280 --FV_PAY_HIST_DIST_ID
5281 , p_source_17 IN NUMBER
5282 --FV_TREASURY_CONFIRMATION_ID
5283 , p_source_18 IN NUMBER
5284 --FV_PAY_DIST_AMOUNT
5285 , p_source_19 IN NUMBER
5286 --FV_INV_CURRENCY_CODE
5287 , p_source_20 IN VARCHAR2
5288 --FV_REV_PAY_HIST_DIST_ID
5289 , p_source_24 IN NUMBER
5290 )
5291 IS
5292
5293 l_component_type VARCHAR2(80);
5294 l_component_code VARCHAR2(30);
5295 l_component_type_code VARCHAR2(1);
5296 l_component_appl_id INTEGER;
5297 l_amb_context_code VARCHAR2(30);
5298 l_entity_code VARCHAR2(30);
5299 l_event_class_code VARCHAR2(30);
5300 l_ae_header_id NUMBER;
5301 l_event_type_code VARCHAR2(30);
5302 l_line_definition_code VARCHAR2(30);
5303 l_line_definition_owner_code VARCHAR2(1);
5304 --
5305 -- adr variables
5306 l_segment VARCHAR2(30);
5307 l_ccid NUMBER;
5308 l_adr_transaction_coa_id NUMBER;
5309 l_adr_accounting_coa_id NUMBER;
5310 l_adr_flexfield_segment_code VARCHAR2(30);
5311 l_adr_flex_value_set_id NUMBER;
5312 l_adr_value_type_code VARCHAR2(30);
5313 l_adr_value_combination_id NUMBER;
5314 l_adr_value_segment_code VARCHAR2(30);
5315
5316 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5317 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5318 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5319 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5320
5321 -- 4262811 Variables ------------------------------------------------------------------------------------------
5322 l_entered_amt_idx NUMBER;
5323 l_accted_amt_idx NUMBER;
5324 l_acc_rev_flag VARCHAR2(1);
5325 l_accrual_line_num NUMBER;
5326 l_tmp_amt NUMBER;
5327 l_acc_rev_natural_side_code VARCHAR2(1);
5328
5329 l_num_entries NUMBER;
5330 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5331 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5332 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5333 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5334 l_recog_line_1 NUMBER;
5335 l_recog_line_2 NUMBER;
5336
5337 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5338 l_bflow_applied_to_amt NUMBER; -- 5132302
5339 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5340
5341 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5342
5343 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5344 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5345
5346 ---------------------------------------------------------------------------------------------------------------
5347
5348
5349 --
5350 -- bulk performance
5351 --
5352 l_balance_type_code VARCHAR2(1);
5353 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5354 l_log_module VARCHAR2(240);
5355
5356 --
5357 -- Upgrade strategy
5358 --
5359 l_actual_upg_option VARCHAR2(1);
5360 l_enc_upg_option VARCHAR2(1);
5361
5362 --
5363 BEGIN
5364 --
5365 IF g_log_enabled THEN
5366 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_16';
5367 END IF;
5368 --
5369 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5370
5371 trace
5372 (p_msg => 'BEGIN of AcctLineType_16'
5373 ,p_level => C_LEVEL_PROCEDURE
5374 ,p_module => l_log_module);
5375
5376 END IF;
5377 --
5378 l_component_type := 'AMB_JLT';
5379 l_component_code := 'FV_TC_UNPAID_ACCT_REV_CR';
5380 l_component_type_code := 'S';
5381 l_component_appl_id := 8901;
5382 l_amb_context_code := 'DEFAULT';
5383 l_entity_code := 'TREASURY_CONFIRMATION';
5384 l_event_class_code := 'TREASURY_ACCOMPLISHMENT';
5385 l_event_type_code := 'TREASURY_ACCOMPLISHMENT_ALL';
5386 l_line_definition_owner_code := 'S';
5387 l_line_definition_code := 'FV_TREASURY_PAYMENTS_ALL';
5388 --
5389 l_balance_type_code := 'A';
5390 l_segment := NULL;
5391 l_ccid := NULL;
5392 l_adr_transaction_coa_id := NULL;
5393 l_adr_accounting_coa_id := NULL;
5394 l_adr_flexfield_segment_code := NULL;
5395 l_adr_flex_value_set_id := NULL;
5396 l_adr_value_type_code := NULL;
5397 l_adr_value_combination_id := NULL;
5398 l_adr_value_segment_code := NULL;
5399
5400 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
5401 l_bflow_class_code := 'FV_TC_PAID_DR'; -- 4219869 Business Flow
5402 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
5403 l_budgetary_control_flag := 'N';
5404
5405 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5406 l_bflow_applied_to_amt := NULL; -- 5132302
5410 l_accrual_line_num := NULL; -- 4262811
5407 l_entered_amt_idx := NULL; -- 4262811
5408 l_accted_amt_idx := NULL; -- 4262811
5409 l_acc_rev_flag := NULL; -- 4262811
5411 l_tmp_amt := NULL; -- 4262811
5412 --
5413
5414 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5415 l_balance_type_code <> 'B' THEN
5416 IF NVL(
5417 xla_ae_sources_pkg.GetSystemSourceChar(
5418 p_source_code => 'XLA_EVENT_TYPE_CODE'
5419 , p_source_type_code => 'Y'
5420 , p_source_application_id => 602
5421 ),'
5422 ') = 'TREASURY_BACKOUT' OR
5423 NVL(
5424 xla_ae_sources_pkg.GetSystemSourceChar(
5425 p_source_code => 'XLA_EVENT_TYPE_CODE'
5426 , p_source_type_code => 'Y'
5427 , p_source_application_id => 602
5428 ),'
5429 ') = 'TREASURY_VOID'
5430 THEN
5431
5432 --
5433 XLA_AE_LINES_PKG.SetNewLine;
5434
5435 p_balance_type_code := l_balance_type_code;
5436 -- set the flag so later we will know whether the gain loss line needs to be created
5437
5438 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5439 p_actual_flag :='A';
5440 END IF;
5441
5442 --
5443 -- bulk performance
5444 --
5445 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5446 p_header_num => 0); -- 4262811
5447 --
5448 -- set accounting line options
5449 --
5450 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5451 p_natural_side_code => 'C'
5452 , p_gain_or_loss_flag => 'N'
5453 , p_gl_transfer_mode_code => 'S'
5454 , p_acct_entry_type_code => 'A'
5455 , p_switch_side_flag => 'N'
5456 , p_merge_duplicate_code => 'N'
5457 );
5458 --
5459 l_acc_rev_natural_side_code := 'D'; -- 4262811
5460 --
5461 --
5462 -- set accounting line type info
5463 --
5464 xla_ae_lines_pkg.SetAcctLineType
5465 (p_component_type => l_component_type
5466 ,p_event_type_code => l_event_type_code
5467 ,p_line_definition_owner_code => l_line_definition_owner_code
5468 ,p_line_definition_code => l_line_definition_code
5469 ,p_accounting_line_code => l_component_code
5470 ,p_accounting_line_type_code => l_component_type_code
5471 ,p_accounting_line_appl_id => l_component_appl_id
5472 ,p_amb_context_code => l_amb_context_code
5473 ,p_entity_code => l_entity_code
5474 ,p_event_class_code => l_event_class_code);
5475 --
5476 -- set accounting class
5477 --
5478 xla_ae_lines_pkg.SetAcctClass(
5479 p_accounting_class_code => 'ACCOUNTSPAYABLE'
5480 , p_ae_header_id => l_ae_header_id
5481 );
5482
5483 --
5484 -- set rounding class
5485 --
5486 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5487 'ACCOUNTSPAYABLE';
5488
5489 --
5490 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5491 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5492 --
5493 -- bulk performance
5494 --
5495 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5496
5497 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5498 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5499
5500 -- 4955764
5501 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5502 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5503
5504 -- 4458381 Public Sector Enh
5505
5506 --
5507 -- set accounting attributes for the line type
5508 --
5509 l_entered_amt_idx := 8;
5510 l_accted_amt_idx := 10;
5511 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5512 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
5513 l_rec_acct_attrs.array_num_value(1) := p_source_14;
5514 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5515 l_rec_acct_attrs.array_char_value(2) := p_source_15;
5516 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
5517 l_rec_acct_attrs.array_char_value(3) := p_source_16;
5518 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
5519 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_24);
5520 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5521 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_18);
5522 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
5523 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_17);
5524 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
5525 l_rec_acct_attrs.array_char_value(7) := p_source_15;
5526 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
5527 l_rec_acct_attrs.array_num_value(8) := p_source_19;
5528 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
5529 l_rec_acct_attrs.array_char_value(9) := p_source_20;
5530 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
5531 l_rec_acct_attrs.array_num_value(10) := p_source_19;
5532
5533 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5537 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5534 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5535
5536 ---------------------------------------------------------------------------------------------------------------
5538 ---------------------------------------------------------------------------------------------------------------
5539 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5540
5541 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5542 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5543
5544 IF xla_accounting_cache_pkg.GetValueChar
5545 (p_source_code => 'LEDGER_CATEGORY_CODE'
5546 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5547 AND l_bflow_method_code = 'PRIOR_ENTRY'
5548 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5549 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5550 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5551 )
5552 THEN
5553 xla_ae_lines_pkg.BflowUpgEntry
5554 (p_business_method_code => l_bflow_method_code
5555 ,p_business_class_code => l_bflow_class_code
5556 ,p_balance_type => l_balance_type_code);
5557 ELSE
5558 NULL;
5559 XLA_AE_LINES_PKG.business_flow_validation(
5560 p_business_method_code => l_bflow_method_code
5561 ,p_business_class_code => l_bflow_class_code
5562 ,p_inherit_description_flag => l_inherit_desc_flag);
5563 END IF;
5564
5565 --
5566 -- call description
5567 --
5568 -- No description or it is inherited.
5569 --
5570 -- call ADRs
5571 -- Bug 4922099
5572 --
5573 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5574 (NVL(l_actual_upg_option, 'N') = 'O') OR
5575 (NVL(l_enc_upg_option, 'N') = 'O')
5576 )
5577 THEN
5578 NULL;
5579 --
5580 --
5581
5582 --
5583 --
5584 END IF;
5585 --
5586 -- Bug 4922099
5587 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5588 (NVL(l_enc_upg_option, 'N') = 'O')
5589 ) AND
5590 (l_bflow_method_code = 'PRIOR_ENTRY')
5591 )
5592 THEN
5593 IF
5594 --
5595 1 = 1
5596 --
5597 THEN
5598 xla_accounting_err_pkg.build_message
5599 (p_appli_s_name => 'XLA'
5600 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5601 ,p_token_1 => 'LINE_NUMBER'
5602 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5603 ,p_token_2 => 'LINE_TYPE_NAME'
5604 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5605 l_component_type
5606 ,l_component_code
5607 ,l_component_type_code
5608 ,l_component_appl_id
5609 ,l_amb_context_code
5610 ,l_entity_code
5611 ,l_event_class_code
5612 )
5613 ,p_token_3 => 'OWNER'
5614 ,p_value_3 => xla_lookups_pkg.get_meaning(
5615 p_lookup_type => 'XLA_OWNER_TYPE'
5616 ,p_lookup_code => l_component_type_code
5617 )
5618 ,p_token_4 => 'PRODUCT_NAME'
5619 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5620 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5621 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5622 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5623 ,p_ae_header_id => NULL
5624 );
5625
5626 IF (C_LEVEL_ERROR>= g_log_level) THEN
5627 trace
5628 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5629 ,p_level => C_LEVEL_ERROR
5630 ,p_module => l_log_module);
5631 END IF;
5632 END IF;
5633 END IF;
5634 --
5635 --
5636 ------------------------------------------------------------------------------------------------
5637 -- 4219869 Business Flow
5638 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5639 -- Prior Entry. Currently, the following code is always generated.
5640 ------------------------------------------------------------------------------------------------
5641 -- No ValidateCurrentLine for business flow method of Prior Entry
5642
5646 ------------------------------------------------------------------------------------
5643 ------------------------------------------------------------------------------------
5644 -- 4219869 Business Flow
5645 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5647 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5648
5649 ----------------------------------------------------------------------------------
5650 -- 4219869 Business Flow
5651 -- Update journal entry status -- Need to generate this within IF <condition>
5652 ----------------------------------------------------------------------------------
5653 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5654 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5655 ,p_balance_type_code => l_balance_type_code
5656 );
5657
5658 -------------------------------------------------------------------------------------------
5659 -- 4262811 - Generate the Accrual Reversal lines
5660 -------------------------------------------------------------------------------------------
5661 BEGIN
5662 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5663 (g_array_event(p_event_id).array_value_num('header_index'));
5664 IF l_acc_rev_flag IS NULL THEN
5665 l_acc_rev_flag := 'N';
5666 END IF;
5667 EXCEPTION
5668 WHEN OTHERS THEN
5669 l_acc_rev_flag := 'N';
5670 END;
5671 --
5672 IF (l_acc_rev_flag = 'Y') THEN
5673
5674 -- 4645092 ------------------------------------------------------------------------------
5675 -- To allow MPA report to determine if it should generate report process
5676 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5677 ------------------------------------------------------------------------------------------
5678
5679 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5680 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5681
5682 --
5683 -- Update the line information that should be overwritten
5684 --
5685 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5686 p_header_num => 1);
5687 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5688
5689 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5690
5691 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5692 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5693 END IF;
5694
5695 --
5696 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5697 --
5698 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5699 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5700 ELSE
5701 ---------------------------------------------------------------------------------------------------
5702 -- 4262811a Switch Sign
5703 ---------------------------------------------------------------------------------------------------
5704 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5705 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5706 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5707 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5708 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5709 -- 5132302
5710 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5711 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5712
5713 END IF;
5714
5715 -- 4955764
5716 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5717 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5718
5719
5720 XLA_AE_LINES_PKG.ValidateCurrentLine;
5721 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5722
5723 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5724 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5725 ,p_balance_type_code => l_balance_type_code);
5726
5727 END IF;
5728
5729 -----------------------------------------------------------------------------------------
5730 -- 4262811 Multiperiod Accounting
5731 -----------------------------------------------------------------------------------------
5732 -- No MPA option is assigned.
5733
5734
5735 END IF;
5736 END IF;
5737 --
5738
5739 --
5740 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5741 trace
5742 (p_msg => 'END of AcctLineType_16'
5743 ,p_level => C_LEVEL_PROCEDURE
5744 ,p_module => l_log_module);
5745 END IF;
5746 --
5747 EXCEPTION
5748 WHEN xla_exceptions_pkg.application_exception THEN
5749 RAISE;
5750 WHEN OTHERS THEN
5751 xla_exceptions_pkg.raise_message
5752 (p_location => 'XLA_08901_AAD_S_000002_PKG.AcctLineType_16');
5753 END AcctLineType_16;
5754 --
5755
5756 ---------------------------------------
5757 --
5758 -- PRIVATE PROCEDURE
5759 -- insert_sources_17
5760 --
5761 ----------------------------------------
5762 --
5763 PROCEDURE insert_sources_17(
5764 p_target_ledger_id IN NUMBER
5768 , p_pad_end_date IN DATE
5765 , p_language IN VARCHAR2
5766 , p_sla_ledger_id IN NUMBER
5767 , p_pad_start_date IN DATE
5769 )
5770 IS
5771
5772 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BUDGET_EXECUTION_ALL';
5773 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BUDGET_EXECUTION';
5774 p_apps_owner VARCHAR2(30);
5775 l_log_module VARCHAR2(240);
5776 BEGIN
5777 IF g_log_enabled THEN
5778 l_log_module := C_DEFAULT_MODULE||'.insert_sources_17';
5779 END IF;
5780 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5781
5782 trace
5783 (p_msg => 'BEGIN of insert_sources_17'
5784 ,p_level => C_LEVEL_PROCEDURE
5785 ,p_module => l_log_module);
5786
5787 END IF;
5788
5789 -- select APPS owner
5790 SELECT oracle_username
5791 INTO p_apps_owner
5792 FROM fnd_oracle_userid
5793 WHERE read_only_flag = 'U'
5794 ;
5795
5796 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
5797 trace
5798 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
5799 ' - p_language = '||p_language||
5800 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
5801 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
5802 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
5803 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
5804 ,p_level => C_LEVEL_STATEMENT
5805 ,p_module => l_log_module);
5806 END IF;
5807
5808
5809 --
5810 INSERT INTO xla_diag_sources --hdr2
5811 (
5812 event_id
5813 , ledger_id
5814 , sla_ledger_id
5815 , description_language
5816 , object_name
5817 , object_type_code
5818 , line_number
5819 , source_application_id
5820 , source_type_code
5821 , source_code
5822 , source_value
5823 , source_meaning
5824 , created_by
5825 , creation_date
5826 , last_update_date
5827 , last_updated_by
5828 , last_update_login
5829 , program_update_date
5830 , program_application_id
5831 , program_id
5832 , request_id
5833 )
5834 SELECT
5835 event_id
5836 , p_target_ledger_id
5837 , p_sla_ledger_id
5838 , p_language
5839 , object_name
5840 , object_type_code
5841 , line_number
5842 , source_application_id
5843 , source_type_code
5844 , source_code
5845 , SUBSTR(source_value ,1,1996)
5846 , SUBSTR(source_meaning ,1,200)
5847 , xla_environment_pkg.g_Usr_Id
5848 , TRUNC(SYSDATE)
5849 , TRUNC(SYSDATE)
5850 , xla_environment_pkg.g_Usr_Id
5851 , xla_environment_pkg.g_Login_Id
5852 , TRUNC(SYSDATE)
5853 , xla_environment_pkg.g_Prog_Appl_Id
5854 , xla_environment_pkg.g_Prog_Id
5855 , xla_environment_pkg.g_Req_Id
5856 FROM (
5857 SELECT xet.event_id event_id
5858 , 0 line_number
5859 , CASE r
5860 WHEN 1 THEN 'FV_BE_BA_FD_HDR_V'
5861
5862 ELSE null
5863 END object_name
5864 , CASE r
5865 WHEN 1 THEN 'HEADER'
5866
5867 ELSE null
5868 END object_type_code
5869 , CASE r
5870 WHEN 1 THEN '8901'
5871
5872 ELSE null
5873 END source_application_id
5874 , 'S' source_type_code
5875 , CASE r
5876 WHEN 1 THEN 'GL_DATE'
5877
5878 ELSE null
5879 END source_code
5880 , CASE r
5881 WHEN 1 THEN TO_CHAR(h1.GL_DATE)
5882
5883 ELSE null
5884 END source_value
5885 , null source_meaning
5886 FROM xla_events_gt xet
5887 , FV_BE_BA_FD_HDR_V h1
5888 ,(select rownum r from all_objects where rownum <= 1 and owner = p_apps_owner)
5889 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
5890 AND xet.event_class_code = C_EVENT_CLASS_CODE
5891 AND h1.event_id = xet.event_id
5892
5893 )
5894 ;
5895 --
5896 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
5897
5898 trace
5899 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
5900 ,p_level => C_LEVEL_STATEMENT
5901 ,p_module => l_log_module);
5902
5903 END IF;
5904 --
5905
5906
5907
5908
5909 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5910 trace
5911 (p_msg => 'END of insert_sources_17'
5912 ,p_level => C_LEVEL_PROCEDURE
5913 ,p_module => l_log_module);
5914 END IF;
5915 EXCEPTION
5916 WHEN xla_exceptions_pkg.application_exception THEN
5917 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
5918 trace
5919 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
5920 ,p_level => C_LEVEL_EXCEPTION
5921 ,p_module => l_log_module);
5922 END IF;
5923 RAISE;
5924 WHEN OTHERS THEN
5928 ,p_level => C_LEVEL_EXCEPTION
5925 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
5926 trace
5927 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
5929 ,p_module => l_log_module);
5930 END IF;
5931 xla_exceptions_pkg.raise_message
5932 (p_location => 'XLA_08901_AAD_S_000002_PKG.insert_sources_17');
5933 END insert_sources_17;
5934 --
5935
5936 ---------------------------------------
5937 --
5938 -- PRIVATE FUNCTION
5939 -- EventClass_17
5940 --
5941 ----------------------------------------
5942 --
5943 FUNCTION EventClass_17
5944 (p_application_id IN NUMBER
5945 ,p_base_ledger_id IN NUMBER
5946 ,p_target_ledger_id IN NUMBER
5947 ,p_language IN VARCHAR2
5948 ,p_currency_code IN VARCHAR2
5949 ,p_sla_ledger_id IN NUMBER
5950 ,p_pad_start_date IN DATE
5951 ,p_pad_end_date IN DATE
5952 ,p_primary_ledger_id IN NUMBER)
5953 RETURN BOOLEAN IS
5954 --
5955 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BUDGET_EXECUTION_ALL';
5956 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BUDGET_EXECUTION';
5957
5958 l_calculate_acctd_flag VARCHAR2(1) :='N';
5959 l_calculate_g_l_flag VARCHAR2(1) :='N';
5960 --
5961 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
5962 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
5963 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
5964 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
5965 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
5966 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
5967 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
5968 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
5969 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
5970 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
5971 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
5972 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
5973 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
5974 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
5975 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
5976 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
5977 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
5978 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
5979 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
5980 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
5981 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
5982 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
5983 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
5984 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
5985
5986 l_event_id NUMBER;
5987 l_previous_event_id NUMBER;
5988 l_first_event_id NUMBER;
5989 l_last_event_id NUMBER;
5990
5991 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
5992 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5993 --
5994 --
5995 l_result BOOLEAN := TRUE;
5996 l_rows NUMBER := 1000;
5997 l_event_type_name VARCHAR2(80) := 'All';
5998 l_event_class_name VARCHAR2(80) := 'Budget Execution Transactions';
5999 l_description VARCHAR2(4000);
6000 l_transaction_reversal NUMBER;
6001 l_ae_header_id NUMBER;
6002 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
6003 l_log_module VARCHAR2(240);
6004 --
6005 l_acct_reversal_source VARCHAR2(30);
6006 l_trx_reversal_source VARCHAR2(30);
6007
6008 l_continue_with_lines BOOLEAN := TRUE;
6009 --
6010 l_acc_rev_gl_date_source DATE; -- 4262811
6011 --
6012 type t_array_event_id is table of number index by binary_integer;
6013
6014 l_rec_array_event t_rec_array_event;
6015 l_null_rec_array_event t_rec_array_event;
6016 l_array_ae_header_id xla_number_array_type;
6017 l_actual_flag VARCHAR2(1) := NULL;
6018 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
6019 l_balance_type_code VARCHAR2(1) :=NULL;
6020 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
6021
6022 --
6023 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
6024 --
6025
6026 TYPE t_array_source_25 IS TABLE OF FV_BE_BA_FD_HDR_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
6027
6028
6029 l_array_source_25 t_array_source_25;
6030
6031
6032 --
6033 CURSOR header_cur
6034 IS
6035 SELECT /*+ leading(xet) cardinality(xet,1) */
6036 -- Event Class Code: BUDGET_EXECUTION
6037 xet.entity_id
6038 ,xet.legal_entity_id
6039 ,xet.entity_code
6040 ,xet.transaction_number
6041 ,xet.event_id
6042 ,xet.event_class_code
6043 ,xet.event_type_code
6044 ,xet.event_number
6045 ,xet.event_date
6046 ,xet.transaction_date
6047 ,xet.reference_num_1
6048 ,xet.reference_num_2
6049 ,xet.reference_num_3
6050 ,xet.reference_num_4
6051 ,xet.reference_char_1
6052 ,xet.reference_char_2
6056 ,xet.reference_date_2
6053 ,xet.reference_char_3
6054 ,xet.reference_char_4
6055 ,xet.reference_date_1
6057 ,xet.reference_date_3
6058 ,xet.reference_date_4
6059 ,xet.event_created_by
6060 ,xet.budgetary_control_flag
6061 , h1.GL_DATE source_25
6062 FROM xla_events_gt xet
6063 , FV_BE_BA_FD_HDR_V h1
6064 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
6065 and xet.event_class_code = C_EVENT_CLASS_CODE
6066 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
6067
6068 ORDER BY event_id
6069 ;
6070
6071
6072 --
6073 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
6074 IS
6075 SELECT /*+ leading(xet) cardinality(xet,1) */
6076 -- Event Class Code: BUDGET_EXECUTION
6077 xet.entity_id
6078 ,xet.legal_entity_id
6079 ,xet.entity_code
6080 ,xet.transaction_number
6081 ,xet.event_id
6082 ,xet.event_class_code
6083 ,xet.event_type_code
6084 ,xet.event_number
6085 ,xet.event_date
6086 ,xet.transaction_date
6087 ,xet.reference_num_1
6088 ,xet.reference_num_2
6089 ,xet.reference_num_3
6090 ,xet.reference_num_4
6091 ,xet.reference_char_1
6092 ,xet.reference_char_2
6093 ,xet.reference_char_3
6094 ,xet.reference_char_4
6095 ,xet.reference_date_1
6096 ,xet.reference_date_2
6097 ,xet.reference_date_3
6098 ,xet.reference_date_4
6099 ,xet.event_created_by
6100 ,xet.budgetary_control_flag
6101 , 0
6102 FROM xla_events_gt xet
6103 WHERE xet.event_id between x_first_event_id and x_last_event_id
6104 and xet.event_date between p_pad_start_date and p_pad_end_date
6105 and xet.event_class_code = C_EVENT_CLASS_CODE
6106 and xet.event_status_code <> 'N' ;
6107
6108 --
6109 BEGIN
6110 IF g_log_enabled THEN
6111 l_log_module := C_DEFAULT_MODULE||'.EventClass_17';
6112 END IF;
6113 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6114 trace
6115 (p_msg => 'BEGIN of EventClass_17'
6116 ,p_level => C_LEVEL_PROCEDURE
6117 ,p_module => l_log_module);
6118 END IF;
6119
6120 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6121 trace
6122 (p_msg => 'p_application_id = '||p_application_id||
6123 ' - p_base_ledger_id = '||p_base_ledger_id||
6124 ' - p_target_ledger_id = '||p_target_ledger_id||
6125 ' - p_language = '||p_language||
6126 ' - p_currency_code = '||p_currency_code||
6127 ' - p_sla_ledger_id = '||p_sla_ledger_id
6128 ,p_level => C_LEVEL_STATEMENT
6129 ,p_module => l_log_module);
6130 END IF;
6131 --
6132 -- initialze arrays
6133 --
6134 g_array_event.DELETE;
6135 l_rec_array_event := l_null_rec_array_event;
6136 --
6137 --------------------------------------
6138 -- 4262811 Initialze MPA Line Number
6139 --------------------------------------
6140 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
6141
6142 --
6143
6144 --
6145 OPEN header_cur;
6146 --
6147 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6148 trace
6149 (p_msg => 'SQL - FETCH header_cur'
6150 ,p_level => C_LEVEL_STATEMENT
6151 ,p_module => l_log_module);
6152 END IF;
6153 --
6154 LOOP
6155 FETCH header_cur BULK COLLECT INTO
6156 l_array_entity_id
6157 , l_array_legal_entity_id
6158 , l_array_entity_code
6159 , l_array_transaction_num
6160 , l_array_event_id
6161 , l_array_class_code
6162 , l_array_event_type
6163 , l_array_event_number
6164 , l_array_event_date
6165 , l_array_transaction_date
6166 , l_array_reference_num_1
6167 , l_array_reference_num_2
6168 , l_array_reference_num_3
6169 , l_array_reference_num_4
6170 , l_array_reference_char_1
6171 , l_array_reference_char_2
6172 , l_array_reference_char_3
6173 , l_array_reference_char_4
6174 , l_array_reference_date_1
6175 , l_array_reference_date_2
6176 , l_array_reference_date_3
6177 , l_array_reference_date_4
6178 , l_array_event_created_by
6179 , l_array_budgetary_control_flag
6180 , l_array_source_25
6181 LIMIT l_rows;
6182 --
6183 IF (C_LEVEL_EVENT >= g_log_level) THEN
6184 trace
6185 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
6186 ,p_level => C_LEVEL_EVENT
6187 ,p_module => l_log_module);
6188 END IF;
6189 --
6190 EXIT WHEN l_array_entity_id.COUNT = 0;
6191
6192 -- initialize arrays
6193 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
6194 XLA_AE_LINES_PKG.g_rec_lines := NULL;
6195
6196 --
6197 -- Bug 4458708
6198 --
6199 XLA_AE_LINES_PKG.g_LineNumber := 0;
6200
6201
6202 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
6203 g_last_hdr_idx := l_array_event_id.LAST;
6204 --
6205 -- loop for the headers. Each iteration is for each header extract row
6206 -- fetched in header cursor
6207 --
6208 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
6209
6210 --
6211 -- set event info as cache for other routines to refer event attributes
6212 --
6213 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
6214 (p_application_id => p_application_id
6215 ,p_primary_ledger_id => p_primary_ledger_id
6216 ,p_base_ledger_id => p_base_ledger_id
6220 ,p_entity_code => l_array_entity_code(hdr_idx)
6217 ,p_target_ledger_id => p_target_ledger_id
6218 ,p_entity_id => l_array_entity_id(hdr_idx)
6219 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
6221 ,p_transaction_num => l_array_transaction_num(hdr_idx)
6222 ,p_event_id => l_array_event_id(hdr_idx)
6223 ,p_event_class_code => l_array_class_code(hdr_idx)
6224 ,p_event_type_code => l_array_event_type(hdr_idx)
6225 ,p_event_number => l_array_event_number(hdr_idx)
6226 ,p_event_date => l_array_event_date(hdr_idx)
6227 ,p_transaction_date => l_array_transaction_date(hdr_idx)
6228 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
6229 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
6230 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
6231 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
6232 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
6233 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
6234 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
6235 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
6236 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
6237 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
6238 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
6239 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
6240 ,p_event_created_by => l_array_event_created_by(hdr_idx)
6241 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
6242
6243 --
6244 -- set the status of entry to C_VALID (0)
6245 --
6246 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
6247
6248 --
6249 -- initialize a row for ae header
6250 --
6251 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
6252
6253 l_event_id := l_array_event_id(hdr_idx);
6254
6255 --
6256 -- storing the hdr_idx for event. May be used by line cursor.
6257 --
6258 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
6259
6260 --
6261 -- store sources from header extract. This can be improved to
6262 -- store only those sources from header extract that may be used in lines
6263 --
6264
6265 g_array_event(l_event_id).array_value_date('source_25') := l_array_source_25(hdr_idx);
6266
6267 --
6268 -- initilaize the status of ae headers for diffrent balance types
6269 -- the status is initialised to C_NOT_CREATED (2)
6270 --
6271 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
6272 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
6273 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
6274
6275 --
6276 -- call api to validate and store accounting attributes for header
6277 --
6278
6279 ------------------------------------------------------------
6280 -- Accrual Reversal : to get date for Standard Source (NONE)
6281 ------------------------------------------------------------
6282 l_acc_rev_gl_date_source := NULL;
6283
6284 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
6285 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_25');
6286
6287
6288 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
6289
6290 XLA_AE_HEADER_PKG.SetJeCategoryName;
6291
6292 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
6293 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
6294 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
6295 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
6296 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
6297
6298
6299
6300
6301 --
6302 --accounting attribute enhancement, bug 3612931
6303 --
6304 l_trx_reversal_source := SUBSTR(NULL, 1,30);
6305
6306 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
6307 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
6308
6309 xla_accounting_err_pkg.build_message
6310 (p_appli_s_name => 'XLA'
6311 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
6312 ,p_token_1 => 'ACCT_ATTR_NAME'
6313 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
6314 ,p_token_2 => 'PRODUCT_NAME'
6315 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
6316 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6317 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
6318 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
6319
6320 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
6321 --
6322 -- following sets the accounting attributes needed to reverse
6323 -- accounting for a distributeion
6324 --
6325 xla_ae_lines_pkg.SetTrxReversalAttrs
6326 (p_event_id => l_event_id
6327 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
6328 ,p_trx_reversal_source => l_trx_reversal_source);
6329
6330 END IF;
6331
6332
6333 ----------------------------------------------------------------
6334 -- 4262811 - update the header statuses to invalid in need be
6338
6335 ----------------------------------------------------------------
6336 --
6337 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
6339
6340 -----------------------------------------------
6341 -- No accrual reversal for the event class/type
6342 -----------------------------------------------
6343 ----------------------------------------------------------------
6344
6345 --
6346 -- this ends the header loop iteration for one bulk fetch
6347 --
6348 END LOOP;
6349
6350 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
6351 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
6352
6353 --
6354 -- insert dummy rows into lines gt table that were created due to
6355 -- transaction reversals
6356 --
6357 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
6358 l_result := XLA_AE_LINES_PKG.InsertLines;
6359 END IF;
6360
6361 --
6362 -- reset the temp_line_num for each set of events fetched from header
6363 -- cursor rather than doing it for each new event in line cursor
6364 -- Bug 3939231
6365 --
6366 xla_ae_lines_pkg.g_temp_line_num := 0;
6367
6368
6369
6370 --
6371 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
6372 --
6373 --
6374 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6375
6376 trace
6377 (p_msg => 'SQL - FETCH line_cur'
6378 ,p_level => C_LEVEL_STATEMENT
6379 ,p_module => l_log_module);
6380
6381 END IF;
6382 --
6383 --
6384 LOOP
6385 --
6386 FETCH line_cur BULK COLLECT INTO
6387 l_array_entity_id
6388 , l_array_legal_entity_id
6389 , l_array_entity_code
6390 , l_array_transaction_num
6391 , l_array_event_id
6392 , l_array_class_code
6393 , l_array_event_type
6394 , l_array_event_number
6395 , l_array_event_date
6396 , l_array_transaction_date
6397 , l_array_reference_num_1
6398 , l_array_reference_num_2
6399 , l_array_reference_num_3
6400 , l_array_reference_num_4
6401 , l_array_reference_char_1
6402 , l_array_reference_char_2
6403 , l_array_reference_char_3
6404 , l_array_reference_char_4
6405 , l_array_reference_date_1
6406 , l_array_reference_date_2
6407 , l_array_reference_date_3
6408 , l_array_reference_date_4
6409 , l_array_event_created_by
6410 , l_array_budgetary_control_flag
6411 , l_array_extract_line_num
6412 LIMIT l_rows;
6413
6414 --
6415 IF (C_LEVEL_EVENT >= g_log_level) THEN
6416 trace
6417 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
6418 ,p_level => C_LEVEL_EVENT
6419 ,p_module => l_log_module);
6420 END IF;
6421 --
6422 EXIT WHEN l_array_entity_id.count = 0;
6423
6424 XLA_AE_LINES_PKG.g_rec_lines := null;
6425
6426 --
6427 -- Bug 4458708
6428 --
6429 XLA_AE_LINES_PKG.g_LineNumber := 0;
6430 --
6431 --
6432
6433 FOR Idx IN 1..l_array_event_id.count LOOP
6434 --
6435 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
6436 --
6437 l_event_id := l_array_event_id(idx); -- 5648433
6438
6439 --
6440 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
6441 --
6442
6443 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
6444 (g_array_event(l_event_id).array_value_num('header_index'))
6445 ,'N'
6446 ) <> 'Y'
6447 THEN
6448 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6449 trace
6450 (p_msg => 'Trancaction revesal option is not Y '
6451 ,p_level => C_LEVEL_STATEMENT
6452 ,p_module => l_log_module);
6453 END IF;
6454
6455 --
6456 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
6457 --
6458 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
6459 --
6460 -- set event info as cache for other routines to refer event attributes
6461 --
6462
6463 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
6464 l_previous_event_id := l_event_id;
6465
6466 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
6467 (p_application_id => p_application_id
6468 ,p_primary_ledger_id => p_primary_ledger_id
6469 ,p_base_ledger_id => p_base_ledger_id
6470 ,p_target_ledger_id => p_target_ledger_id
6471 ,p_entity_id => l_array_entity_id(Idx)
6472 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
6473 ,p_entity_code => l_array_entity_code(Idx)
6474 ,p_transaction_num => l_array_transaction_num(Idx)
6475 ,p_event_id => l_array_event_id(Idx)
6476 ,p_event_class_code => l_array_class_code(Idx)
6477 ,p_event_type_code => l_array_event_type(Idx)
6478 ,p_event_number => l_array_event_number(Idx)
6479 ,p_event_date => l_array_event_date(Idx)
6480 ,p_transaction_date => l_array_transaction_date(Idx)
6481 ,p_reference_num_1 => l_array_reference_num_1(Idx)
6482 ,p_reference_num_2 => l_array_reference_num_2(Idx)
6483 ,p_reference_num_3 => l_array_reference_num_3(Idx)
6484 ,p_reference_num_4 => l_array_reference_num_4(Idx)
6485 ,p_reference_char_1 => l_array_reference_char_1(Idx)
6486 ,p_reference_char_2 => l_array_reference_char_2(Idx)
6487 ,p_reference_char_3 => l_array_reference_char_3(Idx)
6491 ,p_reference_date_3 => l_array_reference_date_3(Idx)
6488 ,p_reference_char_4 => l_array_reference_char_4(Idx)
6489 ,p_reference_date_1 => l_array_reference_date_1(Idx)
6490 ,p_reference_date_2 => l_array_reference_date_2(Idx)
6492 ,p_reference_date_4 => l_array_reference_date_4(Idx)
6493 ,p_event_created_by => l_array_event_created_by(Idx)
6494 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
6495 --
6496 END IF;
6497
6498
6499
6500 --
6501 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
6502
6503 l_acct_reversal_source := SUBSTR(NULL, 1,30);
6504
6505 IF l_continue_with_lines THEN
6506 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
6507 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
6508
6509 xla_accounting_err_pkg.build_message
6510 (p_appli_s_name => 'XLA'
6511 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
6512 ,p_token_1 => 'LINE_NUMBER'
6513 ,p_value_1 => l_array_extract_line_num(Idx)
6514 ,p_token_2 => 'PRODUCT_NAME'
6515 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
6516 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6517 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
6518 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
6519
6520 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
6521 --
6522 -- following sets the accounting attributes needed to reverse
6523 -- accounting for a distributeion
6524 --
6525
6526 --
6527 -- 5217187
6528 --
6529 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
6530 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
6531 g_array_event(l_event_id).array_value_num('header_index'));
6532 --
6533 --
6534
6535 -- No reversal code generated
6536
6537 xla_ae_lines_pkg.SetAcctReversalAttrs
6538 (p_event_id => l_event_id
6539 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
6540 ,p_calculate_acctd_flag => l_calculate_acctd_flag
6541 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
6542 END IF;
6543
6544 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
6545 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
6546 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
6547 -- or secondary ledger that has different currency with primary
6548 -- or alc that is calculated by sla
6549 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
6550 (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'))
6551
6552 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
6553 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
6554 AND (l_actual_flag = 'A')) THEN
6555 XLA_AE_LINES_PKG.CreateGainOrLossLines(
6556 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
6557 ,p_application_id => p_application_id
6558 ,p_amb_context_code => 'DEFAULT'
6559 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
6560 ,p_event_class_code => C_EVENT_CLASS_CODE
6561 ,p_event_type_code => C_EVENT_TYPE_CODE
6562
6563 ,p_gain_ccid => -1
6564 ,p_loss_ccid => -1
6565
6566 ,p_actual_flag => l_actual_flag
6567 ,p_enc_flag => null
6568 ,p_actual_g_l_ref => l_actual_gain_loss_ref
6569 ,p_enc_g_l_ref => null
6570 );
6571 END IF;
6572 END IF;
6573 END IF;
6574
6575 ELSE
6576 --
6577 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
6578 --
6579 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6580 trace
6581 (p_msg => 'Trancaction revesal option is Y'
6582 ,p_level => C_LEVEL_STATEMENT
6583 ,p_module => l_log_module);
6584 END IF;
6585 END IF;
6586
6587 END LOOP;
6588 l_result := XLA_AE_LINES_PKG.InsertLines ;
6589 end loop;
6590 close line_cur;
6591
6592
6593 --
6594 -- insert headers into xla_ae_headers_gt table
6595 --
6596 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
6597
6598 -- insert into errors table here.
6599
6600 END LOOP;
6601
6602 --
6603 -- 4865292
6604 --
6605 -- Compare g_hdr_extract_count with event count in
6606 -- CreateHeadersAndLines.
6607 --
6608 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
6609
6610 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6611 trace (p_msg => '# rows extracted from header extract objects '
6612 || ' (running total): '
6613 || g_hdr_extract_count
6614 ,p_level => C_LEVEL_STATEMENT
6615 ,p_module => l_log_module);
6616 END IF;
6617
6618 CLOSE header_cur;
6619 --
6620
6621 --
6622 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6623 trace
6624 (p_msg => 'END of EventClass_17'
6625 ,p_level => C_LEVEL_PROCEDURE
6626 ,p_module => l_log_module);
6627 END IF;
6628 --
6629 RETURN l_result;
6630 EXCEPTION
6634
6631 WHEN xla_exceptions_pkg.application_exception THEN
6632
6633 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
6635
6636 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
6637
6638 RAISE;
6639 WHEN OTHERS THEN
6640 xla_exceptions_pkg.raise_message
6641 (p_location => 'XLA_08901_AAD_S_000002_PKG.EventClass_17');
6642 END EventClass_17;
6643 --
6644
6645 ---------------------------------------
6646 --
6647 -- PRIVATE PROCEDURE
6648 -- insert_sources_18
6649 --
6650 ----------------------------------------
6651 --
6652 PROCEDURE insert_sources_18(
6653 p_target_ledger_id IN NUMBER
6654 , p_language IN VARCHAR2
6655 , p_sla_ledger_id IN NUMBER
6656 , p_pad_start_date IN DATE
6657 , p_pad_end_date IN DATE
6658 )
6659 IS
6660
6661 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RPR_BUDGET_EXECUTION_ALL';
6662 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RPR_BUDGET_EXECUTION';
6663 p_apps_owner VARCHAR2(30);
6664 l_log_module VARCHAR2(240);
6665 BEGIN
6666 IF g_log_enabled THEN
6667 l_log_module := C_DEFAULT_MODULE||'.insert_sources_18';
6668 END IF;
6669 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6670
6671 trace
6672 (p_msg => 'BEGIN of insert_sources_18'
6673 ,p_level => C_LEVEL_PROCEDURE
6674 ,p_module => l_log_module);
6675
6676 END IF;
6677
6678 -- select APPS owner
6679 SELECT oracle_username
6680 INTO p_apps_owner
6681 FROM fnd_oracle_userid
6682 WHERE read_only_flag = 'U'
6683 ;
6684
6685 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6686 trace
6687 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
6688 ' - p_language = '||p_language||
6689 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
6690 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
6691 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
6692 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
6693 ,p_level => C_LEVEL_STATEMENT
6694 ,p_module => l_log_module);
6695 END IF;
6696
6697
6698 --
6699 INSERT INTO xla_diag_sources --hdr2
6700 (
6701 event_id
6702 , ledger_id
6703 , sla_ledger_id
6704 , description_language
6705 , object_name
6706 , object_type_code
6707 , line_number
6708 , source_application_id
6709 , source_type_code
6710 , source_code
6711 , source_value
6712 , source_meaning
6713 , created_by
6714 , creation_date
6715 , last_update_date
6716 , last_updated_by
6717 , last_update_login
6718 , program_update_date
6719 , program_application_id
6720 , program_id
6721 , request_id
6722 )
6723 SELECT
6724 event_id
6725 , p_target_ledger_id
6726 , p_sla_ledger_id
6727 , p_language
6728 , object_name
6729 , object_type_code
6730 , line_number
6731 , source_application_id
6732 , source_type_code
6733 , source_code
6734 , SUBSTR(source_value ,1,1996)
6735 , SUBSTR(source_meaning ,1,200)
6736 , xla_environment_pkg.g_Usr_Id
6737 , TRUNC(SYSDATE)
6738 , TRUNC(SYSDATE)
6739 , xla_environment_pkg.g_Usr_Id
6740 , xla_environment_pkg.g_Login_Id
6741 , TRUNC(SYSDATE)
6742 , xla_environment_pkg.g_Prog_Appl_Id
6743 , xla_environment_pkg.g_Prog_Id
6744 , xla_environment_pkg.g_Req_Id
6745 FROM (
6746 SELECT xet.event_id event_id
6747 , 0 line_number
6748 , CASE r
6749 WHEN 1 THEN 'FV_BE_RPR_HDR_V'
6750
6751 ELSE null
6752 END object_name
6753 , CASE r
6754 WHEN 1 THEN 'HEADER'
6755
6756 ELSE null
6757 END object_type_code
6758 , CASE r
6759 WHEN 1 THEN '8901'
6760
6761 ELSE null
6762 END source_application_id
6763 , 'S' source_type_code
6764 , CASE r
6765 WHEN 1 THEN 'GL_DATE'
6766
6767 ELSE null
6768 END source_code
6769 , CASE r
6770 WHEN 1 THEN TO_CHAR(h1.GL_DATE)
6771
6772 ELSE null
6773 END source_value
6774 , null source_meaning
6775 FROM xla_events_gt xet
6776 , FV_BE_RPR_HDR_V h1
6777 ,(select rownum r from all_objects where rownum <= 1 and owner = p_apps_owner)
6778 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
6779 AND xet.event_class_code = C_EVENT_CLASS_CODE
6780 AND h1.event_id = xet.event_id
6781
6782 )
6783 ;
6784 --
6785 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6786
6787 trace
6788 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
6789 ,p_level => C_LEVEL_STATEMENT
6790 ,p_module => l_log_module);
6791
6792 END IF;
6793 --
6794
6795
6799 trace
6796
6797
6798 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6800 (p_msg => 'END of insert_sources_18'
6801 ,p_level => C_LEVEL_PROCEDURE
6802 ,p_module => l_log_module);
6803 END IF;
6804 EXCEPTION
6805 WHEN xla_exceptions_pkg.application_exception THEN
6806 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
6807 trace
6808 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
6809 ,p_level => C_LEVEL_EXCEPTION
6810 ,p_module => l_log_module);
6811 END IF;
6812 RAISE;
6813 WHEN OTHERS THEN
6814 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
6815 trace
6816 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
6817 ,p_level => C_LEVEL_EXCEPTION
6818 ,p_module => l_log_module);
6819 END IF;
6820 xla_exceptions_pkg.raise_message
6821 (p_location => 'XLA_08901_AAD_S_000002_PKG.insert_sources_18');
6822 END insert_sources_18;
6823 --
6824
6825 ---------------------------------------
6826 --
6827 -- PRIVATE FUNCTION
6828 -- EventClass_18
6829 --
6830 ----------------------------------------
6831 --
6832 FUNCTION EventClass_18
6833 (p_application_id IN NUMBER
6834 ,p_base_ledger_id IN NUMBER
6835 ,p_target_ledger_id IN NUMBER
6836 ,p_language IN VARCHAR2
6837 ,p_currency_code IN VARCHAR2
6838 ,p_sla_ledger_id IN NUMBER
6839 ,p_pad_start_date IN DATE
6840 ,p_pad_end_date IN DATE
6841 ,p_primary_ledger_id IN NUMBER)
6842 RETURN BOOLEAN IS
6843 --
6844 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RPR_BUDGET_EXECUTION_ALL';
6845 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RPR_BUDGET_EXECUTION';
6846
6847 l_calculate_acctd_flag VARCHAR2(1) :='N';
6848 l_calculate_g_l_flag VARCHAR2(1) :='N';
6849 --
6850 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6851 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6852 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
6853 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
6854 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6855 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
6856 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
6857 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6858 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6859 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6860 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6861 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6862 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6863 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6864 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
6865 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
6866 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
6867 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
6868 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6869 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6870 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6871 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6872 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
6873 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
6874
6875 l_event_id NUMBER;
6876 l_previous_event_id NUMBER;
6877 l_first_event_id NUMBER;
6878 l_last_event_id NUMBER;
6879
6880 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
6881 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6882 --
6883 --
6884 l_result BOOLEAN := TRUE;
6885 l_rows NUMBER := 1000;
6886 l_event_type_name VARCHAR2(80) := 'All';
6887 l_event_class_name VARCHAR2(80) := 'Reprogram Budget Execution Transactions';
6888 l_description VARCHAR2(4000);
6889 l_transaction_reversal NUMBER;
6890 l_ae_header_id NUMBER;
6891 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
6892 l_log_module VARCHAR2(240);
6893 --
6894 l_acct_reversal_source VARCHAR2(30);
6895 l_trx_reversal_source VARCHAR2(30);
6896
6897 l_continue_with_lines BOOLEAN := TRUE;
6898 --
6899 l_acc_rev_gl_date_source DATE; -- 4262811
6900 --
6901 type t_array_event_id is table of number index by binary_integer;
6902
6903 l_rec_array_event t_rec_array_event;
6904 l_null_rec_array_event t_rec_array_event;
6905 l_array_ae_header_id xla_number_array_type;
6906 l_actual_flag VARCHAR2(1) := NULL;
6907 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
6908 l_balance_type_code VARCHAR2(1) :=NULL;
6909 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
6910
6911 --
6912 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
6913 --
6914
6915 TYPE t_array_source_25 IS TABLE OF FV_BE_RPR_HDR_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
6916
6917
6918 l_array_source_25 t_array_source_25;
6919
6923 IS
6920
6921 --
6922 CURSOR header_cur
6924 SELECT /*+ leading(xet) cardinality(xet,1) */
6925 -- Event Class Code: RPR_BUDGET_EXECUTION
6926 xet.entity_id
6927 ,xet.legal_entity_id
6928 ,xet.entity_code
6929 ,xet.transaction_number
6930 ,xet.event_id
6931 ,xet.event_class_code
6932 ,xet.event_type_code
6933 ,xet.event_number
6934 ,xet.event_date
6935 ,xet.transaction_date
6936 ,xet.reference_num_1
6937 ,xet.reference_num_2
6938 ,xet.reference_num_3
6939 ,xet.reference_num_4
6940 ,xet.reference_char_1
6941 ,xet.reference_char_2
6942 ,xet.reference_char_3
6943 ,xet.reference_char_4
6944 ,xet.reference_date_1
6945 ,xet.reference_date_2
6946 ,xet.reference_date_3
6947 ,xet.reference_date_4
6948 ,xet.event_created_by
6949 ,xet.budgetary_control_flag
6950 , h1.GL_DATE source_25
6951 FROM xla_events_gt xet
6952 , FV_BE_RPR_HDR_V h1
6953 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
6954 and xet.event_class_code = C_EVENT_CLASS_CODE
6955 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
6956
6957 ORDER BY event_id
6958 ;
6959
6960
6961 --
6962 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
6963 IS
6964 SELECT /*+ leading(xet) cardinality(xet,1) */
6965 -- Event Class Code: RPR_BUDGET_EXECUTION
6966 xet.entity_id
6967 ,xet.legal_entity_id
6968 ,xet.entity_code
6969 ,xet.transaction_number
6970 ,xet.event_id
6971 ,xet.event_class_code
6972 ,xet.event_type_code
6973 ,xet.event_number
6974 ,xet.event_date
6975 ,xet.transaction_date
6976 ,xet.reference_num_1
6977 ,xet.reference_num_2
6978 ,xet.reference_num_3
6979 ,xet.reference_num_4
6980 ,xet.reference_char_1
6981 ,xet.reference_char_2
6982 ,xet.reference_char_3
6983 ,xet.reference_char_4
6984 ,xet.reference_date_1
6985 ,xet.reference_date_2
6986 ,xet.reference_date_3
6987 ,xet.reference_date_4
6988 ,xet.event_created_by
6989 ,xet.budgetary_control_flag
6990 , 0
6991 FROM xla_events_gt xet
6992 WHERE xet.event_id between x_first_event_id and x_last_event_id
6993 and xet.event_date between p_pad_start_date and p_pad_end_date
6994 and xet.event_class_code = C_EVENT_CLASS_CODE
6995 and xet.event_status_code <> 'N' ;
6996
6997 --
6998 BEGIN
6999 IF g_log_enabled THEN
7000 l_log_module := C_DEFAULT_MODULE||'.EventClass_18';
7001 END IF;
7002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7003 trace
7004 (p_msg => 'BEGIN of EventClass_18'
7005 ,p_level => C_LEVEL_PROCEDURE
7006 ,p_module => l_log_module);
7007 END IF;
7008
7009 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7010 trace
7011 (p_msg => 'p_application_id = '||p_application_id||
7012 ' - p_base_ledger_id = '||p_base_ledger_id||
7013 ' - p_target_ledger_id = '||p_target_ledger_id||
7014 ' - p_language = '||p_language||
7015 ' - p_currency_code = '||p_currency_code||
7016 ' - p_sla_ledger_id = '||p_sla_ledger_id
7017 ,p_level => C_LEVEL_STATEMENT
7018 ,p_module => l_log_module);
7019 END IF;
7020 --
7021 -- initialze arrays
7022 --
7023 g_array_event.DELETE;
7024 l_rec_array_event := l_null_rec_array_event;
7025 --
7026 --------------------------------------
7027 -- 4262811 Initialze MPA Line Number
7028 --------------------------------------
7029 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
7030
7031 --
7032
7033 --
7034 OPEN header_cur;
7035 --
7036 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7037 trace
7038 (p_msg => 'SQL - FETCH header_cur'
7039 ,p_level => C_LEVEL_STATEMENT
7040 ,p_module => l_log_module);
7041 END IF;
7042 --
7043 LOOP
7044 FETCH header_cur BULK COLLECT INTO
7045 l_array_entity_id
7046 , l_array_legal_entity_id
7047 , l_array_entity_code
7048 , l_array_transaction_num
7049 , l_array_event_id
7050 , l_array_class_code
7051 , l_array_event_type
7052 , l_array_event_number
7053 , l_array_event_date
7054 , l_array_transaction_date
7055 , l_array_reference_num_1
7056 , l_array_reference_num_2
7057 , l_array_reference_num_3
7058 , l_array_reference_num_4
7059 , l_array_reference_char_1
7060 , l_array_reference_char_2
7061 , l_array_reference_char_3
7062 , l_array_reference_char_4
7063 , l_array_reference_date_1
7064 , l_array_reference_date_2
7065 , l_array_reference_date_3
7066 , l_array_reference_date_4
7067 , l_array_event_created_by
7068 , l_array_budgetary_control_flag
7069 , l_array_source_25
7070 LIMIT l_rows;
7071 --
7072 IF (C_LEVEL_EVENT >= g_log_level) THEN
7073 trace
7074 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
7075 ,p_level => C_LEVEL_EVENT
7076 ,p_module => l_log_module);
7077 END IF;
7078 --
7079 EXIT WHEN l_array_entity_id.COUNT = 0;
7080
7081 -- initialize arrays
7082 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
7083 XLA_AE_LINES_PKG.g_rec_lines := NULL;
7084
7085 --
7086 -- Bug 4458708
7087 --
7088 XLA_AE_LINES_PKG.g_LineNumber := 0;
7089
7090
7094 -- loop for the headers. Each iteration is for each header extract row
7091 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
7092 g_last_hdr_idx := l_array_event_id.LAST;
7093 --
7095 -- fetched in header cursor
7096 --
7097 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
7098
7099 --
7100 -- set event info as cache for other routines to refer event attributes
7101 --
7102 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
7103 (p_application_id => p_application_id
7104 ,p_primary_ledger_id => p_primary_ledger_id
7105 ,p_base_ledger_id => p_base_ledger_id
7106 ,p_target_ledger_id => p_target_ledger_id
7107 ,p_entity_id => l_array_entity_id(hdr_idx)
7108 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
7109 ,p_entity_code => l_array_entity_code(hdr_idx)
7110 ,p_transaction_num => l_array_transaction_num(hdr_idx)
7111 ,p_event_id => l_array_event_id(hdr_idx)
7112 ,p_event_class_code => l_array_class_code(hdr_idx)
7113 ,p_event_type_code => l_array_event_type(hdr_idx)
7114 ,p_event_number => l_array_event_number(hdr_idx)
7115 ,p_event_date => l_array_event_date(hdr_idx)
7116 ,p_transaction_date => l_array_transaction_date(hdr_idx)
7117 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
7118 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
7119 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
7120 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
7121 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
7122 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
7123 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
7124 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
7125 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
7126 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
7127 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
7128 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
7129 ,p_event_created_by => l_array_event_created_by(hdr_idx)
7130 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
7131
7132 --
7133 -- set the status of entry to C_VALID (0)
7134 --
7135 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
7136
7137 --
7138 -- initialize a row for ae header
7139 --
7140 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
7141
7142 l_event_id := l_array_event_id(hdr_idx);
7143
7144 --
7145 -- storing the hdr_idx for event. May be used by line cursor.
7146 --
7147 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
7148
7149 --
7150 -- store sources from header extract. This can be improved to
7151 -- store only those sources from header extract that may be used in lines
7152 --
7153
7154 g_array_event(l_event_id).array_value_date('source_25') := l_array_source_25(hdr_idx);
7155
7156 --
7157 -- initilaize the status of ae headers for diffrent balance types
7158 -- the status is initialised to C_NOT_CREATED (2)
7159 --
7160 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
7161 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
7162 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
7163
7164 --
7165 -- call api to validate and store accounting attributes for header
7166 --
7167
7168 ------------------------------------------------------------
7169 -- Accrual Reversal : to get date for Standard Source (NONE)
7170 ------------------------------------------------------------
7171 l_acc_rev_gl_date_source := NULL;
7172
7173 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
7174 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_25');
7175
7176
7177 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
7178
7179 XLA_AE_HEADER_PKG.SetJeCategoryName;
7180
7181 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
7182 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
7183 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
7184 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
7185 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
7186
7187
7188
7189
7190 --
7191 --accounting attribute enhancement, bug 3612931
7192 --
7193 l_trx_reversal_source := SUBSTR(NULL, 1,30);
7194
7195 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
7196 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
7197
7198 xla_accounting_err_pkg.build_message
7199 (p_appli_s_name => 'XLA'
7200 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
7201 ,p_token_1 => 'ACCT_ATTR_NAME'
7202 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
7203 ,p_token_2 => 'PRODUCT_NAME'
7204 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
7205 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
7206 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
7207 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
7208
7212 -- accounting for a distributeion
7209 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
7210 --
7211 -- following sets the accounting attributes needed to reverse
7213 --
7214 xla_ae_lines_pkg.SetTrxReversalAttrs
7215 (p_event_id => l_event_id
7216 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
7217 ,p_trx_reversal_source => l_trx_reversal_source);
7218
7219 END IF;
7220
7221
7222 ----------------------------------------------------------------
7223 -- 4262811 - update the header statuses to invalid in need be
7224 ----------------------------------------------------------------
7225 --
7226 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
7227
7228
7229 -----------------------------------------------
7230 -- No accrual reversal for the event class/type
7231 -----------------------------------------------
7232 ----------------------------------------------------------------
7233
7234 --
7235 -- this ends the header loop iteration for one bulk fetch
7236 --
7237 END LOOP;
7238
7239 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
7240 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
7241
7242 --
7243 -- insert dummy rows into lines gt table that were created due to
7244 -- transaction reversals
7245 --
7246 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
7247 l_result := XLA_AE_LINES_PKG.InsertLines;
7248 END IF;
7249
7250 --
7251 -- reset the temp_line_num for each set of events fetched from header
7252 -- cursor rather than doing it for each new event in line cursor
7253 -- Bug 3939231
7254 --
7255 xla_ae_lines_pkg.g_temp_line_num := 0;
7256
7257
7258
7259 --
7260 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
7261 --
7262 --
7263 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7264
7265 trace
7266 (p_msg => 'SQL - FETCH line_cur'
7267 ,p_level => C_LEVEL_STATEMENT
7268 ,p_module => l_log_module);
7269
7270 END IF;
7271 --
7272 --
7273 LOOP
7274 --
7275 FETCH line_cur BULK COLLECT INTO
7276 l_array_entity_id
7277 , l_array_legal_entity_id
7278 , l_array_entity_code
7279 , l_array_transaction_num
7280 , l_array_event_id
7281 , l_array_class_code
7282 , l_array_event_type
7283 , l_array_event_number
7284 , l_array_event_date
7285 , l_array_transaction_date
7286 , l_array_reference_num_1
7287 , l_array_reference_num_2
7288 , l_array_reference_num_3
7289 , l_array_reference_num_4
7290 , l_array_reference_char_1
7291 , l_array_reference_char_2
7292 , l_array_reference_char_3
7293 , l_array_reference_char_4
7294 , l_array_reference_date_1
7295 , l_array_reference_date_2
7296 , l_array_reference_date_3
7297 , l_array_reference_date_4
7298 , l_array_event_created_by
7299 , l_array_budgetary_control_flag
7300 , l_array_extract_line_num
7301 LIMIT l_rows;
7302
7303 --
7304 IF (C_LEVEL_EVENT >= g_log_level) THEN
7305 trace
7306 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
7307 ,p_level => C_LEVEL_EVENT
7308 ,p_module => l_log_module);
7309 END IF;
7310 --
7311 EXIT WHEN l_array_entity_id.count = 0;
7312
7313 XLA_AE_LINES_PKG.g_rec_lines := null;
7314
7315 --
7316 -- Bug 4458708
7317 --
7318 XLA_AE_LINES_PKG.g_LineNumber := 0;
7319 --
7320 --
7321
7322 FOR Idx IN 1..l_array_event_id.count LOOP
7323 --
7324 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
7325 --
7326 l_event_id := l_array_event_id(idx); -- 5648433
7327
7328 --
7329 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
7330 --
7331
7332 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
7333 (g_array_event(l_event_id).array_value_num('header_index'))
7334 ,'N'
7335 ) <> 'Y'
7336 THEN
7337 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7338 trace
7339 (p_msg => 'Trancaction revesal option is not Y '
7340 ,p_level => C_LEVEL_STATEMENT
7341 ,p_module => l_log_module);
7342 END IF;
7343
7344 --
7345 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
7346 --
7347 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
7348 --
7349 -- set event info as cache for other routines to refer event attributes
7350 --
7351
7352 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
7353 l_previous_event_id := l_event_id;
7354
7355 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
7356 (p_application_id => p_application_id
7357 ,p_primary_ledger_id => p_primary_ledger_id
7358 ,p_base_ledger_id => p_base_ledger_id
7359 ,p_target_ledger_id => p_target_ledger_id
7360 ,p_entity_id => l_array_entity_id(Idx)
7361 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
7362 ,p_entity_code => l_array_entity_code(Idx)
7363 ,p_transaction_num => l_array_transaction_num(Idx)
7364 ,p_event_id => l_array_event_id(Idx)
7365 ,p_event_class_code => l_array_class_code(Idx)
7366 ,p_event_type_code => l_array_event_type(Idx)
7370 ,p_reference_num_1 => l_array_reference_num_1(Idx)
7367 ,p_event_number => l_array_event_number(Idx)
7368 ,p_event_date => l_array_event_date(Idx)
7369 ,p_transaction_date => l_array_transaction_date(Idx)
7371 ,p_reference_num_2 => l_array_reference_num_2(Idx)
7372 ,p_reference_num_3 => l_array_reference_num_3(Idx)
7373 ,p_reference_num_4 => l_array_reference_num_4(Idx)
7374 ,p_reference_char_1 => l_array_reference_char_1(Idx)
7375 ,p_reference_char_2 => l_array_reference_char_2(Idx)
7376 ,p_reference_char_3 => l_array_reference_char_3(Idx)
7377 ,p_reference_char_4 => l_array_reference_char_4(Idx)
7378 ,p_reference_date_1 => l_array_reference_date_1(Idx)
7379 ,p_reference_date_2 => l_array_reference_date_2(Idx)
7380 ,p_reference_date_3 => l_array_reference_date_3(Idx)
7381 ,p_reference_date_4 => l_array_reference_date_4(Idx)
7382 ,p_event_created_by => l_array_event_created_by(Idx)
7383 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
7384 --
7385 END IF;
7386
7387
7388
7389 --
7390 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
7391
7392 l_acct_reversal_source := SUBSTR(NULL, 1,30);
7393
7394 IF l_continue_with_lines THEN
7395 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
7396 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
7397
7398 xla_accounting_err_pkg.build_message
7399 (p_appli_s_name => 'XLA'
7400 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
7401 ,p_token_1 => 'LINE_NUMBER'
7402 ,p_value_1 => l_array_extract_line_num(Idx)
7403 ,p_token_2 => 'PRODUCT_NAME'
7404 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
7405 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
7406 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
7407 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
7408
7409 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
7410 --
7411 -- following sets the accounting attributes needed to reverse
7412 -- accounting for a distributeion
7413 --
7414
7415 --
7416 -- 5217187
7417 --
7418 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
7419 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
7420 g_array_event(l_event_id).array_value_num('header_index'));
7421 --
7422 --
7423
7424 -- No reversal code generated
7425
7426 xla_ae_lines_pkg.SetAcctReversalAttrs
7427 (p_event_id => l_event_id
7428 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
7429 ,p_calculate_acctd_flag => l_calculate_acctd_flag
7430 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
7431 END IF;
7432
7433 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
7434 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
7435 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
7436 -- or secondary ledger that has different currency with primary
7437 -- or alc that is calculated by sla
7438 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
7439 (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'))
7440
7441 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
7442 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
7443 AND (l_actual_flag = 'A')) THEN
7444 XLA_AE_LINES_PKG.CreateGainOrLossLines(
7445 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
7446 ,p_application_id => p_application_id
7447 ,p_amb_context_code => 'DEFAULT'
7448 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
7449 ,p_event_class_code => C_EVENT_CLASS_CODE
7450 ,p_event_type_code => C_EVENT_TYPE_CODE
7451
7452 ,p_gain_ccid => -1
7453 ,p_loss_ccid => -1
7454
7455 ,p_actual_flag => l_actual_flag
7456 ,p_enc_flag => null
7457 ,p_actual_g_l_ref => l_actual_gain_loss_ref
7458 ,p_enc_g_l_ref => null
7459 );
7460 END IF;
7461 END IF;
7462 END IF;
7463
7464 ELSE
7465 --
7466 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
7467 --
7468 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7469 trace
7470 (p_msg => 'Trancaction revesal option is Y'
7471 ,p_level => C_LEVEL_STATEMENT
7472 ,p_module => l_log_module);
7473 END IF;
7474 END IF;
7475
7476 END LOOP;
7477 l_result := XLA_AE_LINES_PKG.InsertLines ;
7478 end loop;
7479 close line_cur;
7480
7481
7482 --
7483 -- insert headers into xla_ae_headers_gt table
7484 --
7485 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
7486
7487 -- insert into errors table here.
7488
7489 END LOOP;
7490
7491 --
7492 -- 4865292
7493 --
7494 -- Compare g_hdr_extract_count with event count in
7495 -- CreateHeadersAndLines.
7496 --
7497 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
7498
7502 || g_hdr_extract_count
7499 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7500 trace (p_msg => '# rows extracted from header extract objects '
7501 || ' (running total): '
7503 ,p_level => C_LEVEL_STATEMENT
7504 ,p_module => l_log_module);
7505 END IF;
7506
7507 CLOSE header_cur;
7508 --
7509
7510 --
7511 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7512 trace
7513 (p_msg => 'END of EventClass_18'
7514 ,p_level => C_LEVEL_PROCEDURE
7515 ,p_module => l_log_module);
7516 END IF;
7517 --
7518 RETURN l_result;
7519 EXCEPTION
7520 WHEN xla_exceptions_pkg.application_exception THEN
7521
7522 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
7523
7524
7525 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
7526
7527 RAISE;
7528 WHEN OTHERS THEN
7529 xla_exceptions_pkg.raise_message
7530 (p_location => 'XLA_08901_AAD_S_000002_PKG.EventClass_18');
7531 END EventClass_18;
7532 --
7533
7534 ---------------------------------------
7535 --
7536 -- PRIVATE PROCEDURE
7537 -- insert_sources_19
7538 --
7539 ----------------------------------------
7540 --
7541 PROCEDURE insert_sources_19(
7542 p_target_ledger_id IN NUMBER
7543 , p_language IN VARCHAR2
7544 , p_sla_ledger_id IN NUMBER
7545 , p_pad_start_date IN DATE
7546 , p_pad_end_date IN DATE
7547 )
7548 IS
7549
7550 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TREASURY_ACCOMPLISHMENT_ALL';
7551 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TREASURY_ACCOMPLISHMENT';
7552 p_apps_owner VARCHAR2(30);
7553 l_log_module VARCHAR2(240);
7554 BEGIN
7555 IF g_log_enabled THEN
7556 l_log_module := C_DEFAULT_MODULE||'.insert_sources_19';
7557 END IF;
7558 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7559
7560 trace
7561 (p_msg => 'BEGIN of insert_sources_19'
7562 ,p_level => C_LEVEL_PROCEDURE
7563 ,p_module => l_log_module);
7564
7565 END IF;
7566
7567 -- select APPS owner
7568 SELECT oracle_username
7569 INTO p_apps_owner
7570 FROM fnd_oracle_userid
7571 WHERE read_only_flag = 'U'
7572 ;
7573
7574 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7575 trace
7576 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
7577 ' - p_language = '||p_language||
7578 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
7579 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
7580 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
7581 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
7582 ,p_level => C_LEVEL_STATEMENT
7583 ,p_module => l_log_module);
7584 END IF;
7585
7586
7587 --
7588 INSERT INTO xla_diag_sources --hdr2
7589 (
7590 event_id
7591 , ledger_id
7592 , sla_ledger_id
7593 , description_language
7594 , object_name
7595 , object_type_code
7596 , line_number
7597 , source_application_id
7598 , source_type_code
7599 , source_code
7600 , source_value
7601 , source_meaning
7602 , created_by
7603 , creation_date
7604 , last_update_date
7605 , last_updated_by
7606 , last_update_login
7607 , program_update_date
7608 , program_application_id
7609 , program_id
7610 , request_id
7611 )
7612 SELECT
7613 event_id
7614 , p_target_ledger_id
7615 , p_sla_ledger_id
7616 , p_language
7617 , object_name
7618 , object_type_code
7619 , line_number
7620 , source_application_id
7621 , source_type_code
7622 , source_code
7623 , SUBSTR(source_value ,1,1996)
7624 , SUBSTR(source_meaning ,1,200)
7625 , xla_environment_pkg.g_Usr_Id
7626 , TRUNC(SYSDATE)
7627 , TRUNC(SYSDATE)
7628 , xla_environment_pkg.g_Usr_Id
7629 , xla_environment_pkg.g_Login_Id
7630 , TRUNC(SYSDATE)
7631 , xla_environment_pkg.g_Prog_Appl_Id
7632 , xla_environment_pkg.g_Prog_Id
7633 , xla_environment_pkg.g_Req_Id
7634 FROM (
7635 SELECT xet.event_id event_id
7636 , 0 line_number
7637 , CASE r
7638 WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
7639 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
7640 WHEN 3 THEN 'FV_TREASURY_EXTRACT_HEADER_V'
7641
7642 ELSE null
7643 END object_name
7644 , CASE r
7645 WHEN 1 THEN 'HEADER'
7646 WHEN 2 THEN 'HEADER'
7647 WHEN 3 THEN 'HEADER'
7648
7649 ELSE null
7650 END object_type_code
7651 , CASE r
7652 WHEN 1 THEN '200'
7653 WHEN 2 THEN '200'
7654 WHEN 3 THEN '8901'
7655
7656 ELSE null
7657 END source_application_id
7658 , 'S' source_type_code
7659 , CASE r
7660 WHEN 1 THEN 'ASP_WHEN_TO_ACCOUNT_PMT'
7661 WHEN 2 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE'
7665 END source_code
7662 WHEN 3 THEN 'TREASURY_CONFIRMATION_ID'
7663
7664 ELSE null
7666 , CASE r
7667 WHEN 1 THEN TO_CHAR(h1.ASP_WHEN_TO_ACCOUNT_PMT)
7668 WHEN 2 THEN TO_CHAR(h1.ASP_AUTOMATIC_OFFSETS_VALUE)
7669 WHEN 3 THEN TO_CHAR(h3.TREASURY_CONFIRMATION_ID)
7670
7671 ELSE null
7672 END source_value
7673 , CASE r
7674 WHEN 2 THEN fvl9.meaning
7675
7676 ELSE null
7677 END source_meaning
7678 FROM xla_events_gt xet
7679 , AP_SYSTEM_PARAMETERS_EXTRACT_V h1
7680 , FV_TREASURY_EXTRACT_HEADER_V h3
7681 , fnd_lookup_values fvl9
7682 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
7683 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
7684 AND xet.event_class_code = C_EVENT_CLASS_CODE
7685 AND h3.event_id = xet.event_id
7686 AND h3.org_id = h1.asp_org_id AND fvl9.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
7687 AND fvl9.lookup_code(+) = h1.ASP_AUTOMATIC_OFFSETS_VALUE
7688 AND fvl9.view_application_id(+) = 200
7689 AND fvl9.language(+) = USERENV('LANG')
7690
7691 )
7692 ;
7693 --
7694 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7695
7696 trace
7697 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
7698 ,p_level => C_LEVEL_STATEMENT
7699 ,p_module => l_log_module);
7700
7701 END IF;
7702 --
7703
7704
7705
7706 --
7707 INSERT INTO xla_diag_sources --line2
7708 (
7709 event_id
7710 , ledger_id
7711 , sla_ledger_id
7712 , description_language
7713 , object_name
7714 , object_type_code
7715 , line_number
7716 , source_application_id
7717 , source_type_code
7718 , source_code
7719 , source_value
7720 , source_meaning
7721 , created_by
7722 , creation_date
7723 , last_update_date
7724 , last_updated_by
7725 , last_update_login
7726 , program_update_date
7727 , program_application_id
7728 , program_id
7729 , request_id
7730 )
7731 SELECT event_id
7732 , p_target_ledger_id
7733 , p_sla_ledger_id
7734 , p_language
7735 , object_name
7736 , object_type_code
7737 , line_number
7738 , source_application_id
7739 , source_type_code
7740 , source_code
7741 , SUBSTR(source_value,1,1996)
7742 , SUBSTR(source_meaning ,1,200)
7743 , xla_environment_pkg.g_Usr_Id
7744 , TRUNC(SYSDATE)
7745 , TRUNC(SYSDATE)
7746 , xla_environment_pkg.g_Usr_Id
7747 , xla_environment_pkg.g_Login_Id
7748 , TRUNC(SYSDATE)
7749 , xla_environment_pkg.g_Prog_Appl_Id
7750 , xla_environment_pkg.g_Prog_Id
7751 , xla_environment_pkg.g_Req_Id
7752 FROM (
7753 SELECT xet.event_id event_id
7754 , l2.line_number line_number
7755 , CASE r
7756 WHEN 1 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7757 WHEN 2 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7758 WHEN 3 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7759 WHEN 4 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7760 WHEN 5 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7761 WHEN 6 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7762 WHEN 7 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7763 WHEN 8 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7764 WHEN 9 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7765 WHEN 10 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7766 WHEN 11 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7767 WHEN 12 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7768 WHEN 13 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7769 WHEN 14 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7770 WHEN 15 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7771 WHEN 16 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7772 WHEN 17 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7773 WHEN 18 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7774 WHEN 19 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7775 WHEN 20 THEN 'FV_TREASURY_EXTRACT_DETAILS_V'
7776
7777 ELSE null
7778 END object_name
7779 , CASE r
7780 WHEN 1 THEN 'LINE'
7781 WHEN 2 THEN 'LINE'
7782 WHEN 3 THEN 'LINE'
7783 WHEN 4 THEN 'LINE'
7784 WHEN 5 THEN 'LINE'
7785 WHEN 6 THEN 'LINE'
7786 WHEN 7 THEN 'LINE'
7787 WHEN 8 THEN 'LINE'
7788 WHEN 9 THEN 'LINE'
7789 WHEN 10 THEN 'LINE'
7790 WHEN 11 THEN 'LINE'
7791 WHEN 12 THEN 'LINE'
7792 WHEN 13 THEN 'LINE'
7793 WHEN 14 THEN 'LINE'
7794 WHEN 15 THEN 'LINE'
7795 WHEN 16 THEN 'LINE'
7796 WHEN 17 THEN 'LINE'
7797 WHEN 18 THEN 'LINE'
7798 WHEN 19 THEN 'LINE'
7799 WHEN 20 THEN 'LINE'
7800
7801 ELSE null
7802 END object_type_code
7803 , CASE r
7804 WHEN 1 THEN '8901'
7808 WHEN 5 THEN '8901'
7805 WHEN 2 THEN '8901'
7806 WHEN 3 THEN '8901'
7807 WHEN 4 THEN '8901'
7809 WHEN 6 THEN '8901'
7810 WHEN 7 THEN '8901'
7811 WHEN 8 THEN '8901'
7812 WHEN 9 THEN '8901'
7813 WHEN 10 THEN '8901'
7814 WHEN 11 THEN '8901'
7815 WHEN 12 THEN '8901'
7816 WHEN 13 THEN '8901'
7817 WHEN 14 THEN '8901'
7818 WHEN 15 THEN '8901'
7819 WHEN 16 THEN '8901'
7820 WHEN 17 THEN '8901'
7821 WHEN 18 THEN '8901'
7822 WHEN 19 THEN '8901'
7823 WHEN 20 THEN '8901'
7824
7825 ELSE null
7826 END source_application_id
7827 , 'S' source_type_code
7828 , CASE r
7829 WHEN 1 THEN 'FV_CHECK_NUMBER'
7830 WHEN 2 THEN 'FV_CHECK_DATE'
7831 WHEN 3 THEN 'FV_TREASURY_PAY_NUMBER'
7832 WHEN 4 THEN 'FV_AP_CASH_ACCOUNT'
7833 WHEN 5 THEN 'FV_AP_CASH_CLEARING_CCID'
7834 WHEN 6 THEN 'DIT_CONFIRM_CASH_ACCOUNT'
7835 WHEN 7 THEN 'FV_INV_DIST_CCID'
7836 WHEN 8 THEN 'FV_AP_LIABILITY_ACCOUNT'
7837 WHEN 9 THEN 'FV_INV_TYPE_LOOKUP_CODE'
7838 WHEN 10 THEN 'FV_BUS_FLOW_FV_APP_ID'
7839 WHEN 11 THEN 'FV_BUS_FLOW_TREASURY_DIST_TYPE'
7840 WHEN 12 THEN 'FV_BUS_FLOW_TREAS_ENTITY_CODE'
7841 WHEN 13 THEN 'FV_PAY_HIST_DIST_ID'
7842 WHEN 14 THEN 'FV_TREASURY_CONFIRMATION_ID'
7843 WHEN 15 THEN 'FV_PAY_DIST_AMOUNT'
7844 WHEN 16 THEN 'FV_INV_CURRENCY_CODE'
7845 WHEN 17 THEN 'FV_INV_EXCHANGE_DATE'
7846 WHEN 18 THEN 'FV_INV_EXCHANGE_RATE'
7847 WHEN 19 THEN 'FV_INV_EXCHANGE_RATE_TYPE'
7848 WHEN 20 THEN 'FV_REV_PAY_HIST_DIST_ID'
7849
7850 ELSE null
7851 END source_code
7852 , CASE r
7853 WHEN 1 THEN TO_CHAR(l2.FV_CHECK_NUMBER)
7854 WHEN 2 THEN TO_CHAR(l2.FV_CHECK_DATE)
7855 WHEN 3 THEN TO_CHAR(l2.FV_TREASURY_PAY_NUMBER)
7856 WHEN 4 THEN TO_CHAR(l2.FV_AP_CASH_ACCOUNT)
7857 WHEN 5 THEN TO_CHAR(l2.FV_AP_CASH_CLEARING_CCID)
7858 WHEN 6 THEN TO_CHAR(l2.DIT_CONFIRM_CASH_ACCOUNT)
7859 WHEN 7 THEN TO_CHAR(l2.FV_INV_DIST_CCID)
7860 WHEN 8 THEN TO_CHAR(l2.FV_AP_LIABILITY_ACCOUNT)
7861 WHEN 9 THEN TO_CHAR(l2.FV_INV_TYPE_LOOKUP_CODE)
7862 WHEN 10 THEN TO_CHAR(l2.FV_BUS_FLOW_FV_APP_ID)
7863 WHEN 11 THEN TO_CHAR(l2.FV_BUS_FLOW_TREASURY_DIST_TYPE)
7864 WHEN 12 THEN TO_CHAR(l2.FV_BUS_FLOW_TREAS_ENTITY_CODE)
7865 WHEN 13 THEN TO_CHAR(l2.FV_PAY_HIST_DIST_ID)
7866 WHEN 14 THEN TO_CHAR(l2.FV_TREASURY_CONFIRMATION_ID)
7867 WHEN 15 THEN TO_CHAR(l2.FV_PAY_DIST_AMOUNT)
7868 WHEN 16 THEN TO_CHAR(l2.FV_INV_CURRENCY_CODE)
7869 WHEN 17 THEN TO_CHAR(l2.FV_INV_EXCHANGE_DATE)
7870 WHEN 18 THEN TO_CHAR(l2.FV_INV_EXCHANGE_RATE)
7871 WHEN 19 THEN TO_CHAR(l2.FV_INV_EXCHANGE_RATE_TYPE)
7872 WHEN 20 THEN TO_CHAR(l2.FV_REV_PAY_HIST_DIST_ID)
7873
7874 ELSE null
7875 END source_value
7876 , null source_meaning
7877 FROM xla_events_gt xet
7878 , FV_TREASURY_EXTRACT_DETAILS_V l2
7879 , (select rownum r from all_objects where rownum <= 20 and owner = p_apps_owner)
7880 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
7881 AND xet.event_class_code = C_EVENT_CLASS_CODE
7882 AND l2.event_id = xet.event_id
7883
7884 )
7885 ;
7886 --
7887 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7888
7889 trace
7890 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
7891 ,p_level => C_LEVEL_STATEMENT
7892 ,p_module => l_log_module);
7893
7894 END IF;
7895
7896
7897 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7898 trace
7899 (p_msg => 'END of insert_sources_19'
7900 ,p_level => C_LEVEL_PROCEDURE
7901 ,p_module => l_log_module);
7902 END IF;
7903 EXCEPTION
7904 WHEN xla_exceptions_pkg.application_exception THEN
7905 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
7906 trace
7907 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
7908 ,p_level => C_LEVEL_EXCEPTION
7909 ,p_module => l_log_module);
7910 END IF;
7911 RAISE;
7912 WHEN OTHERS THEN
7913 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
7914 trace
7915 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
7916 ,p_level => C_LEVEL_EXCEPTION
7917 ,p_module => l_log_module);
7918 END IF;
7919 xla_exceptions_pkg.raise_message
7920 (p_location => 'XLA_08901_AAD_S_000002_PKG.insert_sources_19');
7921 END insert_sources_19;
7922 --
7923
7924 ---------------------------------------
7925 --
7926 -- PRIVATE FUNCTION
7927 -- EventClass_19
7928 --
7929 ----------------------------------------
7930 --
7931 FUNCTION EventClass_19
7932 (p_application_id IN NUMBER
7933 ,p_base_ledger_id IN NUMBER
7937 ,p_sla_ledger_id IN NUMBER
7934 ,p_target_ledger_id IN NUMBER
7935 ,p_language IN VARCHAR2
7936 ,p_currency_code IN VARCHAR2
7938 ,p_pad_start_date IN DATE
7939 ,p_pad_end_date IN DATE
7940 ,p_primary_ledger_id IN NUMBER)
7941 RETURN BOOLEAN IS
7942 --
7943 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TREASURY_ACCOMPLISHMENT_ALL';
7944 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TREASURY_ACCOMPLISHMENT';
7945
7946 l_calculate_acctd_flag VARCHAR2(1) :='Y';
7947 l_calculate_g_l_flag VARCHAR2(1) :='Y';
7948 --
7949 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7950 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7951 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
7952 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
7953 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7954 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
7955 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
7956 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7957 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7958 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7959 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7960 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7961 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7962 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7963 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
7964 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
7965 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
7966 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
7967 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7968 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7969 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7970 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7971 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
7972 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
7973
7974 l_event_id NUMBER;
7975 l_previous_event_id NUMBER;
7976 l_first_event_id NUMBER;
7977 l_last_event_id NUMBER;
7978
7979 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
7980 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7981 --
7982 --
7983 l_result BOOLEAN := TRUE;
7984 l_rows NUMBER := 1000;
7985 l_event_type_name VARCHAR2(80) := 'All';
7986 l_event_class_name VARCHAR2(80) := 'Treasury Accomplishment';
7987 l_description VARCHAR2(4000);
7988 l_transaction_reversal NUMBER;
7989 l_ae_header_id NUMBER;
7990 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
7991 l_log_module VARCHAR2(240);
7992 --
7993 l_acct_reversal_source VARCHAR2(30);
7994 l_trx_reversal_source VARCHAR2(30);
7995
7996 l_continue_with_lines BOOLEAN := TRUE;
7997 --
7998 l_acc_rev_gl_date_source DATE; -- 4262811
7999 --
8000 type t_array_event_id is table of number index by binary_integer;
8001
8002 l_rec_array_event t_rec_array_event;
8003 l_null_rec_array_event t_rec_array_event;
8004 l_array_ae_header_id xla_number_array_type;
8005 l_actual_flag VARCHAR2(1) := NULL;
8006 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
8007 l_balance_type_code VARCHAR2(1) :=NULL;
8008 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
8009
8010 --
8011 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
8012 --
8013
8014 TYPE t_array_source_5 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
8015 TYPE t_array_source_9 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
8016 TYPE t_array_source_13 IS TABLE OF FV_TREASURY_EXTRACT_HEADER_V.TREASURY_CONFIRMATION_ID%TYPE INDEX BY BINARY_INTEGER;
8017
8018 TYPE t_array_source_1 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_CHECK_NUMBER%TYPE INDEX BY BINARY_INTEGER;
8019 TYPE t_array_source_2 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
8020 TYPE t_array_source_3 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_TREASURY_PAY_NUMBER%TYPE INDEX BY BINARY_INTEGER;
8021 TYPE t_array_source_4 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_AP_CASH_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
8022 TYPE t_array_source_6 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_AP_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
8023 TYPE t_array_source_7 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.DIT_CONFIRM_CASH_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
8024 TYPE t_array_source_8 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_INV_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
8025 TYPE t_array_source_10 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_AP_LIABILITY_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
8026 TYPE t_array_source_11 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_INV_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
8027 TYPE t_array_source_14 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_BUS_FLOW_FV_APP_ID%TYPE INDEX BY BINARY_INTEGER;
8028 TYPE t_array_source_15 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_BUS_FLOW_TREASURY_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
8032 TYPE t_array_source_19 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_PAY_DIST_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
8029 TYPE t_array_source_16 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_BUS_FLOW_TREAS_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
8030 TYPE t_array_source_17 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
8031 TYPE t_array_source_18 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_TREASURY_CONFIRMATION_ID%TYPE INDEX BY BINARY_INTEGER;
8033 TYPE t_array_source_20 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_INV_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
8034 TYPE t_array_source_21 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
8035 TYPE t_array_source_22 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
8036 TYPE t_array_source_23 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
8037 TYPE t_array_source_24 IS TABLE OF FV_TREASURY_EXTRACT_DETAILS_V.FV_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
8038
8039 l_array_source_5 t_array_source_5;
8040 l_array_source_9 t_array_source_9;
8041 l_array_source_9_meaning t_array_lookup_meaning;
8042 l_array_source_13 t_array_source_13;
8043
8044 l_array_source_1 t_array_source_1;
8045 l_array_source_2 t_array_source_2;
8046 l_array_source_3 t_array_source_3;
8047 l_array_source_4 t_array_source_4;
8048 l_array_source_6 t_array_source_6;
8049 l_array_source_7 t_array_source_7;
8050 l_array_source_8 t_array_source_8;
8051 l_array_source_10 t_array_source_10;
8052 l_array_source_11 t_array_source_11;
8053 l_array_source_14 t_array_source_14;
8054 l_array_source_15 t_array_source_15;
8055 l_array_source_16 t_array_source_16;
8056 l_array_source_17 t_array_source_17;
8057 l_array_source_18 t_array_source_18;
8058 l_array_source_19 t_array_source_19;
8059 l_array_source_20 t_array_source_20;
8060 l_array_source_21 t_array_source_21;
8061 l_array_source_22 t_array_source_22;
8062 l_array_source_23 t_array_source_23;
8063 l_array_source_24 t_array_source_24;
8064
8065 --
8066 CURSOR header_cur
8067 IS
8068 SELECT /*+ leading(xet) cardinality(xet,1) */
8069 -- Event Class Code: TREASURY_ACCOMPLISHMENT
8070 xet.entity_id
8071 ,xet.legal_entity_id
8072 ,xet.entity_code
8073 ,xet.transaction_number
8074 ,xet.event_id
8075 ,xet.event_class_code
8076 ,xet.event_type_code
8077 ,xet.event_number
8078 ,xet.event_date
8079 ,xet.transaction_date
8080 ,xet.reference_num_1
8081 ,xet.reference_num_2
8082 ,xet.reference_num_3
8083 ,xet.reference_num_4
8084 ,xet.reference_char_1
8085 ,xet.reference_char_2
8086 ,xet.reference_char_3
8087 ,xet.reference_char_4
8088 ,xet.reference_date_1
8089 ,xet.reference_date_2
8090 ,xet.reference_date_3
8091 ,xet.reference_date_4
8092 ,xet.event_created_by
8093 ,xet.budgetary_control_flag
8094 , h1.ASP_WHEN_TO_ACCOUNT_PMT source_5
8095 , h1.ASP_AUTOMATIC_OFFSETS_VALUE source_9
8096 , fvl9.meaning source_9_meaning
8097 , h3.TREASURY_CONFIRMATION_ID source_13
8098 FROM xla_events_gt xet
8099 , AP_SYSTEM_PARAMETERS_EXTRACT_V h1
8100 , FV_TREASURY_EXTRACT_HEADER_V h3
8101 , fnd_lookup_values fvl9
8102 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
8103 and xet.event_class_code = C_EVENT_CLASS_CODE
8104 and xet.event_status_code <> 'N' AND h3.event_id = xet.event_id
8105 AND h3.org_id = h1.asp_org_id AND fvl9.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
8106 AND fvl9.lookup_code(+) = h1.ASP_AUTOMATIC_OFFSETS_VALUE
8107 AND fvl9.view_application_id(+) = 200
8108 AND fvl9.language(+) = USERENV('LANG')
8109
8110 ORDER BY event_id
8111 ;
8112
8113
8114 --
8115 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
8116 IS
8117 SELECT /*+ leading(xet) cardinality(xet,1) */
8118 -- Event Class Code: TREASURY_ACCOMPLISHMENT
8119 xet.entity_id
8120 ,xet.legal_entity_id
8121 ,xet.entity_code
8122 ,xet.transaction_number
8123 ,xet.event_id
8124 ,xet.event_class_code
8125 ,xet.event_type_code
8126 ,xet.event_number
8127 ,xet.event_date
8128 ,xet.transaction_date
8129 ,xet.reference_num_1
8130 ,xet.reference_num_2
8131 ,xet.reference_num_3
8132 ,xet.reference_num_4
8133 ,xet.reference_char_1
8134 ,xet.reference_char_2
8135 ,xet.reference_char_3
8136 ,xet.reference_char_4
8137 ,xet.reference_date_1
8138 ,xet.reference_date_2
8139 ,xet.reference_date_3
8140 ,xet.reference_date_4
8141 ,xet.event_created_by
8142 ,xet.budgetary_control_flag
8143 , l2.LINE_NUMBER
8144 , l2.FV_CHECK_NUMBER source_1
8145 , l2.FV_CHECK_DATE source_2
8146 , l2.FV_TREASURY_PAY_NUMBER source_3
8147 , l2.FV_AP_CASH_ACCOUNT source_4
8148 , l2.FV_AP_CASH_CLEARING_CCID source_6
8149 , l2.DIT_CONFIRM_CASH_ACCOUNT source_7
8150 , l2.FV_INV_DIST_CCID source_8
8151 , l2.FV_AP_LIABILITY_ACCOUNT source_10
8152 , l2.FV_INV_TYPE_LOOKUP_CODE source_11
8153 , l2.FV_BUS_FLOW_FV_APP_ID source_14
8154 , l2.FV_BUS_FLOW_TREASURY_DIST_TYPE source_15
8155 , l2.FV_BUS_FLOW_TREAS_ENTITY_CODE source_16
8156 , l2.FV_PAY_HIST_DIST_ID source_17
8157 , l2.FV_TREASURY_CONFIRMATION_ID source_18
8158 , l2.FV_PAY_DIST_AMOUNT source_19
8159 , l2.FV_INV_CURRENCY_CODE source_20
8160 , l2.FV_INV_EXCHANGE_DATE source_21
8161 , l2.FV_INV_EXCHANGE_RATE source_22
8165 , FV_TREASURY_EXTRACT_DETAILS_V l2
8162 , l2.FV_INV_EXCHANGE_RATE_TYPE source_23
8163 , l2.FV_REV_PAY_HIST_DIST_ID source_24
8164 FROM xla_events_gt xet
8166 WHERE xet.event_id between x_first_event_id and x_last_event_id
8167 and xet.event_date between p_pad_start_date and p_pad_end_date
8168 and xet.event_class_code = C_EVENT_CLASS_CODE
8169 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
8170 ;
8171
8172 --
8173 BEGIN
8174 IF g_log_enabled THEN
8175 l_log_module := C_DEFAULT_MODULE||'.EventClass_19';
8176 END IF;
8177 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8178 trace
8179 (p_msg => 'BEGIN of EventClass_19'
8180 ,p_level => C_LEVEL_PROCEDURE
8181 ,p_module => l_log_module);
8182 END IF;
8183
8184 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8185 trace
8186 (p_msg => 'p_application_id = '||p_application_id||
8187 ' - p_base_ledger_id = '||p_base_ledger_id||
8188 ' - p_target_ledger_id = '||p_target_ledger_id||
8189 ' - p_language = '||p_language||
8190 ' - p_currency_code = '||p_currency_code||
8191 ' - p_sla_ledger_id = '||p_sla_ledger_id
8192 ,p_level => C_LEVEL_STATEMENT
8193 ,p_module => l_log_module);
8194 END IF;
8195 --
8196 -- initialze arrays
8197 --
8198 g_array_event.DELETE;
8199 l_rec_array_event := l_null_rec_array_event;
8200 --
8201 --------------------------------------
8202 -- 4262811 Initialze MPA Line Number
8203 --------------------------------------
8204 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
8205
8206 --
8207
8208 --
8209 OPEN header_cur;
8210 --
8211 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8212 trace
8213 (p_msg => 'SQL - FETCH header_cur'
8214 ,p_level => C_LEVEL_STATEMENT
8215 ,p_module => l_log_module);
8216 END IF;
8217 --
8218 LOOP
8219 FETCH header_cur BULK COLLECT INTO
8220 l_array_entity_id
8221 , l_array_legal_entity_id
8222 , l_array_entity_code
8223 , l_array_transaction_num
8224 , l_array_event_id
8225 , l_array_class_code
8226 , l_array_event_type
8227 , l_array_event_number
8228 , l_array_event_date
8229 , l_array_transaction_date
8230 , l_array_reference_num_1
8231 , l_array_reference_num_2
8232 , l_array_reference_num_3
8233 , l_array_reference_num_4
8234 , l_array_reference_char_1
8235 , l_array_reference_char_2
8236 , l_array_reference_char_3
8237 , l_array_reference_char_4
8238 , l_array_reference_date_1
8239 , l_array_reference_date_2
8240 , l_array_reference_date_3
8241 , l_array_reference_date_4
8242 , l_array_event_created_by
8243 , l_array_budgetary_control_flag
8244 , l_array_source_5
8245 , l_array_source_9
8246 , l_array_source_9_meaning
8247 , l_array_source_13
8248 LIMIT l_rows;
8249 --
8250 IF (C_LEVEL_EVENT >= g_log_level) THEN
8251 trace
8252 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
8253 ,p_level => C_LEVEL_EVENT
8254 ,p_module => l_log_module);
8255 END IF;
8256 --
8257 EXIT WHEN l_array_entity_id.COUNT = 0;
8258
8259 -- initialize arrays
8260 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
8261 XLA_AE_LINES_PKG.g_rec_lines := NULL;
8262
8263 --
8264 -- Bug 4458708
8265 --
8266 XLA_AE_LINES_PKG.g_LineNumber := 0;
8267
8268
8269 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
8270 g_last_hdr_idx := l_array_event_id.LAST;
8271 --
8272 -- loop for the headers. Each iteration is for each header extract row
8273 -- fetched in header cursor
8274 --
8275 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
8276
8277 --
8278 -- set event info as cache for other routines to refer event attributes
8279 --
8280 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
8281 (p_application_id => p_application_id
8282 ,p_primary_ledger_id => p_primary_ledger_id
8283 ,p_base_ledger_id => p_base_ledger_id
8284 ,p_target_ledger_id => p_target_ledger_id
8285 ,p_entity_id => l_array_entity_id(hdr_idx)
8286 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
8287 ,p_entity_code => l_array_entity_code(hdr_idx)
8288 ,p_transaction_num => l_array_transaction_num(hdr_idx)
8289 ,p_event_id => l_array_event_id(hdr_idx)
8290 ,p_event_class_code => l_array_class_code(hdr_idx)
8291 ,p_event_type_code => l_array_event_type(hdr_idx)
8292 ,p_event_number => l_array_event_number(hdr_idx)
8293 ,p_event_date => l_array_event_date(hdr_idx)
8294 ,p_transaction_date => l_array_transaction_date(hdr_idx)
8295 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
8296 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
8297 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
8298 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
8299 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
8300 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
8301 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
8302 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
8303 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
8307 ,p_event_created_by => l_array_event_created_by(hdr_idx)
8304 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
8305 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
8306 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
8308 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
8309
8310 --
8311 -- set the status of entry to C_VALID (0)
8312 --
8313 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
8314
8315 --
8316 -- initialize a row for ae header
8317 --
8318 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
8319
8320 l_event_id := l_array_event_id(hdr_idx);
8321
8322 --
8323 -- storing the hdr_idx for event. May be used by line cursor.
8324 --
8325 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
8326
8327 --
8328 -- store sources from header extract. This can be improved to
8329 -- store only those sources from header extract that may be used in lines
8330 --
8331
8332 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
8333 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
8334 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
8335 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
8336
8337 --
8338 -- initilaize the status of ae headers for diffrent balance types
8339 -- the status is initialised to C_NOT_CREATED (2)
8340 --
8341 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
8342 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
8343 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
8344
8345 --
8346 -- call api to validate and store accounting attributes for header
8347 --
8348
8349 ------------------------------------------------------------
8350 -- Accrual Reversal : to get date for Standard Source (NONE)
8351 ------------------------------------------------------------
8352 l_acc_rev_gl_date_source := NULL;
8353
8354 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
8355 l_rec_acct_attrs.array_date_value(1) :=
8356 xla_ae_sources_pkg.GetSystemSourceDate(
8357 p_source_code => 'XLA_EVENT_DATE'
8358 , p_source_type_code => 'Y'
8359 , p_source_application_id => 602
8360 );
8361
8362
8363 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
8364
8365 XLA_AE_HEADER_PKG.SetJeCategoryName;
8366
8367 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
8368 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
8369 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
8370 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
8371 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
8372
8373
8374
8375
8376 --
8377 --accounting attribute enhancement, bug 3612931
8378 --
8379 l_trx_reversal_source := SUBSTR(NULL, 1,30);
8380
8381 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
8382 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
8383
8384 xla_accounting_err_pkg.build_message
8385 (p_appli_s_name => 'XLA'
8386 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
8387 ,p_token_1 => 'ACCT_ATTR_NAME'
8388 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
8389 ,p_token_2 => 'PRODUCT_NAME'
8390 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
8391 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
8392 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
8393 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
8394
8395 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
8396 --
8397 -- following sets the accounting attributes needed to reverse
8398 -- accounting for a distributeion
8399 --
8400 xla_ae_lines_pkg.SetTrxReversalAttrs
8401 (p_event_id => l_event_id
8402 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
8403 ,p_trx_reversal_source => l_trx_reversal_source);
8404
8405 END IF;
8406
8407
8408 ----------------------------------------------------------------
8409 -- 4262811 - update the header statuses to invalid in need be
8410 ----------------------------------------------------------------
8411 --
8412 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
8413
8414
8415 -----------------------------------------------
8416 -- No accrual reversal for the event class/type
8417 -----------------------------------------------
8418 ----------------------------------------------------------------
8419
8420 --
8421 -- this ends the header loop iteration for one bulk fetch
8422 --
8423 END LOOP;
8424
8425 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
8426 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
8427
8428 --
8429 -- insert dummy rows into lines gt table that were created due to
8430 -- transaction reversals
8431 --
8432 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
8433 l_result := XLA_AE_LINES_PKG.InsertLines;
8434 END IF;
8435
8436 --
8437 -- reset the temp_line_num for each set of events fetched from header
8438 -- cursor rather than doing it for each new event in line cursor
8442
8439 -- Bug 3939231
8440 --
8441 xla_ae_lines_pkg.g_temp_line_num := 0;
8443
8444
8445 --
8446 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
8447 --
8448 --
8449 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8450
8451 trace
8452 (p_msg => 'SQL - FETCH line_cur'
8453 ,p_level => C_LEVEL_STATEMENT
8454 ,p_module => l_log_module);
8455
8456 END IF;
8457 --
8458 --
8459 LOOP
8460 --
8461 FETCH line_cur BULK COLLECT INTO
8462 l_array_entity_id
8463 , l_array_legal_entity_id
8464 , l_array_entity_code
8465 , l_array_transaction_num
8466 , l_array_event_id
8467 , l_array_class_code
8468 , l_array_event_type
8469 , l_array_event_number
8470 , l_array_event_date
8471 , l_array_transaction_date
8472 , l_array_reference_num_1
8473 , l_array_reference_num_2
8474 , l_array_reference_num_3
8475 , l_array_reference_num_4
8476 , l_array_reference_char_1
8477 , l_array_reference_char_2
8478 , l_array_reference_char_3
8479 , l_array_reference_char_4
8480 , l_array_reference_date_1
8481 , l_array_reference_date_2
8482 , l_array_reference_date_3
8483 , l_array_reference_date_4
8484 , l_array_event_created_by
8485 , l_array_budgetary_control_flag
8486 , l_array_extract_line_num
8487 , l_array_source_1
8488 , l_array_source_2
8489 , l_array_source_3
8490 , l_array_source_4
8491 , l_array_source_6
8492 , l_array_source_7
8493 , l_array_source_8
8494 , l_array_source_10
8495 , l_array_source_11
8496 , l_array_source_14
8497 , l_array_source_15
8498 , l_array_source_16
8499 , l_array_source_17
8500 , l_array_source_18
8501 , l_array_source_19
8502 , l_array_source_20
8503 , l_array_source_21
8504 , l_array_source_22
8505 , l_array_source_23
8506 , l_array_source_24
8507 LIMIT l_rows;
8508
8509 --
8510 IF (C_LEVEL_EVENT >= g_log_level) THEN
8511 trace
8512 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
8513 ,p_level => C_LEVEL_EVENT
8514 ,p_module => l_log_module);
8515 END IF;
8516 --
8517 EXIT WHEN l_array_entity_id.count = 0;
8518
8519 XLA_AE_LINES_PKG.g_rec_lines := null;
8520
8521 --
8522 -- Bug 4458708
8523 --
8524 XLA_AE_LINES_PKG.g_LineNumber := 0;
8525 --
8526 --
8527
8528 FOR Idx IN 1..l_array_event_id.count LOOP
8529 --
8530 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
8531 --
8532 l_event_id := l_array_event_id(idx); -- 5648433
8533
8534 --
8535 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
8536 --
8537
8538 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
8539 (g_array_event(l_event_id).array_value_num('header_index'))
8540 ,'N'
8541 ) <> 'Y'
8542 THEN
8543 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8544 trace
8545 (p_msg => 'Trancaction revesal option is not Y '
8546 ,p_level => C_LEVEL_STATEMENT
8547 ,p_module => l_log_module);
8548 END IF;
8549
8550 --
8551 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
8552 --
8553 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
8554 --
8555 -- set event info as cache for other routines to refer event attributes
8556 --
8557
8558 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
8559 l_previous_event_id := l_event_id;
8560
8561 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
8562 (p_application_id => p_application_id
8563 ,p_primary_ledger_id => p_primary_ledger_id
8564 ,p_base_ledger_id => p_base_ledger_id
8565 ,p_target_ledger_id => p_target_ledger_id
8566 ,p_entity_id => l_array_entity_id(Idx)
8567 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
8568 ,p_entity_code => l_array_entity_code(Idx)
8569 ,p_transaction_num => l_array_transaction_num(Idx)
8570 ,p_event_id => l_array_event_id(Idx)
8571 ,p_event_class_code => l_array_class_code(Idx)
8572 ,p_event_type_code => l_array_event_type(Idx)
8573 ,p_event_number => l_array_event_number(Idx)
8574 ,p_event_date => l_array_event_date(Idx)
8575 ,p_transaction_date => l_array_transaction_date(Idx)
8576 ,p_reference_num_1 => l_array_reference_num_1(Idx)
8577 ,p_reference_num_2 => l_array_reference_num_2(Idx)
8578 ,p_reference_num_3 => l_array_reference_num_3(Idx)
8579 ,p_reference_num_4 => l_array_reference_num_4(Idx)
8580 ,p_reference_char_1 => l_array_reference_char_1(Idx)
8581 ,p_reference_char_2 => l_array_reference_char_2(Idx)
8582 ,p_reference_char_3 => l_array_reference_char_3(Idx)
8583 ,p_reference_char_4 => l_array_reference_char_4(Idx)
8584 ,p_reference_date_1 => l_array_reference_date_1(Idx)
8585 ,p_reference_date_2 => l_array_reference_date_2(Idx)
8586 ,p_reference_date_3 => l_array_reference_date_3(Idx)
8587 ,p_reference_date_4 => l_array_reference_date_4(Idx)
8588 ,p_event_created_by => l_array_event_created_by(Idx)
8589 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
8593
8590 --
8591 END IF;
8592
8594
8595 --
8596 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
8597
8598 l_acct_reversal_source := SUBSTR(NULL, 1,30);
8599
8600 IF l_continue_with_lines THEN
8601 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
8602 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
8603
8604 xla_accounting_err_pkg.build_message
8605 (p_appli_s_name => 'XLA'
8606 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
8607 ,p_token_1 => 'LINE_NUMBER'
8608 ,p_value_1 => l_array_extract_line_num(Idx)
8609 ,p_token_2 => 'PRODUCT_NAME'
8610 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
8611 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
8612 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
8613 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
8614
8615 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
8616 --
8617 -- following sets the accounting attributes needed to reverse
8618 -- accounting for a distributeion
8619 --
8620
8621 --
8622 -- 5217187
8623 --
8624 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
8625 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
8626 g_array_event(l_event_id).array_value_num('header_index'));
8627 --
8628 --
8629
8630 -- No reversal code generated
8631
8632 xla_ae_lines_pkg.SetAcctReversalAttrs
8633 (p_event_id => l_event_id
8634 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
8635 ,p_calculate_acctd_flag => l_calculate_acctd_flag
8636 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
8637 END IF;
8638
8639 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
8640 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
8641
8642 --
8643 AcctLineType_9 (
8644 p_application_id => p_application_id
8645 ,p_event_id => l_event_id
8646 ,p_calculate_acctd_flag => l_calculate_acctd_flag
8647 ,p_calculate_g_l_flag => l_calculate_g_l_flag
8648 ,p_actual_flag => l_actual_flag
8649 ,p_balance_type_code => l_balance_type_code
8650 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
8651
8652 , p_source_1 => l_array_source_1(Idx)
8653 , p_source_2 => l_array_source_2(Idx)
8654 , p_source_3 => l_array_source_3(Idx)
8655 , p_source_4 => l_array_source_4(Idx)
8656 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
8657 , p_source_6 => l_array_source_6(Idx)
8658 , p_source_8 => l_array_source_8(Idx)
8659 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
8660 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
8661 , p_source_10 => l_array_source_10(Idx)
8662 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
8663 , p_source_14 => l_array_source_14(Idx)
8664 , p_source_15 => l_array_source_15(Idx)
8665 , p_source_16 => l_array_source_16(Idx)
8666 , p_source_17 => l_array_source_17(Idx)
8667 , p_source_18 => l_array_source_18(Idx)
8668 , p_source_19 => l_array_source_19(Idx)
8669 , p_source_20 => l_array_source_20(Idx)
8670 , p_source_21 => l_array_source_21(Idx)
8671 , p_source_22 => l_array_source_22(Idx)
8672 , p_source_23 => l_array_source_23(Idx)
8673 );
8674 If(l_balance_type_code = 'A') THEN
8675 l_actual_gain_loss_ref := l_gain_or_loss_ref;
8676 END IF;
8677
8678 --
8679
8680
8681 --
8682 AcctLineType_10 (
8683 p_application_id => p_application_id
8684 ,p_event_id => l_event_id
8685 ,p_calculate_acctd_flag => l_calculate_acctd_flag
8686 ,p_calculate_g_l_flag => l_calculate_g_l_flag
8687 ,p_actual_flag => l_actual_flag
8688 ,p_balance_type_code => l_balance_type_code
8689 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
8690
8691 , p_source_14 => l_array_source_14(Idx)
8692 , p_source_15 => l_array_source_15(Idx)
8693 , p_source_16 => l_array_source_16(Idx)
8694 , p_source_17 => l_array_source_17(Idx)
8695 , p_source_18 => l_array_source_18(Idx)
8696 , p_source_19 => l_array_source_19(Idx)
8697 , p_source_20 => l_array_source_20(Idx)
8698 , p_source_24 => l_array_source_24(Idx)
8699 );
8700 If(l_balance_type_code = 'A') THEN
8701 l_actual_gain_loss_ref := l_gain_or_loss_ref;
8702 END IF;
8703
8704 --
8705
8706
8707 --
8708 AcctLineType_11 (
8709 p_application_id => p_application_id
8710 ,p_event_id => l_event_id
8711 ,p_calculate_acctd_flag => l_calculate_acctd_flag
8712 ,p_calculate_g_l_flag => l_calculate_g_l_flag
8713 ,p_actual_flag => l_actual_flag
8714 ,p_balance_type_code => l_balance_type_code
8715 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
8716
8717 , p_source_1 => l_array_source_1(Idx)
8718 , p_source_2 => l_array_source_2(Idx)
8719 , p_source_3 => l_array_source_3(Idx)
8720 , p_source_7 => l_array_source_7(Idx)
8721 , p_source_8 => l_array_source_8(Idx)
8722 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
8723 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
8724 , p_source_10 => l_array_source_10(Idx)
8725 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
8726 , p_source_14 => l_array_source_14(Idx)
8727 , p_source_15 => l_array_source_15(Idx)
8728 , p_source_16 => l_array_source_16(Idx)
8729 , p_source_17 => l_array_source_17(Idx)
8733 , p_source_21 => l_array_source_21(Idx)
8730 , p_source_18 => l_array_source_18(Idx)
8731 , p_source_19 => l_array_source_19(Idx)
8732 , p_source_20 => l_array_source_20(Idx)
8734 , p_source_22 => l_array_source_22(Idx)
8735 , p_source_23 => l_array_source_23(Idx)
8736 );
8737 If(l_balance_type_code = 'A') THEN
8738 l_actual_gain_loss_ref := l_gain_or_loss_ref;
8739 END IF;
8740
8741 --
8742
8743
8744 --
8745 AcctLineType_12 (
8746 p_application_id => p_application_id
8747 ,p_event_id => l_event_id
8748 ,p_calculate_acctd_flag => l_calculate_acctd_flag
8749 ,p_calculate_g_l_flag => l_calculate_g_l_flag
8750 ,p_actual_flag => l_actual_flag
8751 ,p_balance_type_code => l_balance_type_code
8752 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
8753
8754 , p_source_14 => l_array_source_14(Idx)
8755 , p_source_15 => l_array_source_15(Idx)
8756 , p_source_16 => l_array_source_16(Idx)
8757 , p_source_17 => l_array_source_17(Idx)
8758 , p_source_18 => l_array_source_18(Idx)
8759 , p_source_19 => l_array_source_19(Idx)
8760 , p_source_20 => l_array_source_20(Idx)
8761 , p_source_24 => l_array_source_24(Idx)
8762 );
8763 If(l_balance_type_code = 'A') THEN
8764 l_actual_gain_loss_ref := l_gain_or_loss_ref;
8765 END IF;
8766
8767 --
8768
8769
8770 --
8771 AcctLineType_13 (
8772 p_application_id => p_application_id
8773 ,p_event_id => l_event_id
8774 ,p_calculate_acctd_flag => l_calculate_acctd_flag
8775 ,p_calculate_g_l_flag => l_calculate_g_l_flag
8776 ,p_actual_flag => l_actual_flag
8777 ,p_balance_type_code => l_balance_type_code
8778 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
8779
8780 , p_source_1 => l_array_source_1(Idx)
8781 , p_source_2 => l_array_source_2(Idx)
8782 , p_source_3 => l_array_source_3(Idx)
8783 , p_source_8 => l_array_source_8(Idx)
8784 , p_source_11 => l_array_source_11(Idx)
8785 , p_source_14 => l_array_source_14(Idx)
8786 , p_source_15 => l_array_source_15(Idx)
8787 , p_source_16 => l_array_source_16(Idx)
8788 , p_source_17 => l_array_source_17(Idx)
8789 , p_source_18 => l_array_source_18(Idx)
8790 , p_source_19 => l_array_source_19(Idx)
8791 , p_source_20 => l_array_source_20(Idx)
8792 , p_source_21 => l_array_source_21(Idx)
8793 , p_source_22 => l_array_source_22(Idx)
8794 , p_source_23 => l_array_source_23(Idx)
8795 );
8796 If(l_balance_type_code = 'A') THEN
8797 l_actual_gain_loss_ref := l_gain_or_loss_ref;
8798 END IF;
8799
8800 --
8801
8802
8803 --
8804 AcctLineType_14 (
8805 p_application_id => p_application_id
8806 ,p_event_id => l_event_id
8807 ,p_calculate_acctd_flag => l_calculate_acctd_flag
8808 ,p_calculate_g_l_flag => l_calculate_g_l_flag
8809 ,p_actual_flag => l_actual_flag
8810 ,p_balance_type_code => l_balance_type_code
8811 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
8812
8813 , p_source_14 => l_array_source_14(Idx)
8814 , p_source_15 => l_array_source_15(Idx)
8815 , p_source_16 => l_array_source_16(Idx)
8816 , p_source_17 => l_array_source_17(Idx)
8817 , p_source_18 => l_array_source_18(Idx)
8818 , p_source_19 => l_array_source_19(Idx)
8819 , p_source_20 => l_array_source_20(Idx)
8820 , p_source_24 => l_array_source_24(Idx)
8821 );
8822 If(l_balance_type_code = 'A') THEN
8823 l_actual_gain_loss_ref := l_gain_or_loss_ref;
8824 END IF;
8825
8826 --
8827
8828
8829 --
8830 AcctLineType_15 (
8831 p_application_id => p_application_id
8832 ,p_event_id => l_event_id
8833 ,p_calculate_acctd_flag => l_calculate_acctd_flag
8834 ,p_calculate_g_l_flag => l_calculate_g_l_flag
8835 ,p_actual_flag => l_actual_flag
8836 ,p_balance_type_code => l_balance_type_code
8837 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
8838
8839 , p_source_1 => l_array_source_1(Idx)
8840 , p_source_2 => l_array_source_2(Idx)
8841 , p_source_3 => l_array_source_3(Idx)
8842 , p_source_8 => l_array_source_8(Idx)
8843 , p_source_11 => l_array_source_11(Idx)
8844 , p_source_14 => l_array_source_14(Idx)
8845 , p_source_15 => l_array_source_15(Idx)
8846 , p_source_16 => l_array_source_16(Idx)
8847 , p_source_17 => l_array_source_17(Idx)
8848 , p_source_18 => l_array_source_18(Idx)
8849 , p_source_19 => l_array_source_19(Idx)
8850 , p_source_20 => l_array_source_20(Idx)
8851 , p_source_21 => l_array_source_21(Idx)
8852 , p_source_22 => l_array_source_22(Idx)
8853 , p_source_23 => l_array_source_23(Idx)
8854 );
8855 If(l_balance_type_code = 'A') THEN
8856 l_actual_gain_loss_ref := l_gain_or_loss_ref;
8857 END IF;
8858
8859 --
8860
8861
8862 --
8863 AcctLineType_16 (
8864 p_application_id => p_application_id
8865 ,p_event_id => l_event_id
8866 ,p_calculate_acctd_flag => l_calculate_acctd_flag
8867 ,p_calculate_g_l_flag => l_calculate_g_l_flag
8868 ,p_actual_flag => l_actual_flag
8869 ,p_balance_type_code => l_balance_type_code
8870 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
8871
8872 , p_source_14 => l_array_source_14(Idx)
8873 , p_source_15 => l_array_source_15(Idx)
8874 , p_source_16 => l_array_source_16(Idx)
8875 , p_source_17 => l_array_source_17(Idx)
8876 , p_source_18 => l_array_source_18(Idx)
8877 , p_source_19 => l_array_source_19(Idx)
8878 , p_source_20 => l_array_source_20(Idx)
8879 , p_source_24 => l_array_source_24(Idx)
8880 );
8881 If(l_balance_type_code = 'A') THEN
8882 l_actual_gain_loss_ref := l_gain_or_loss_ref;
8883 END IF;
8884
8885 --
8886
8887 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
8888 -- or secondary ledger that has different currency with primary
8892
8889 -- or alc that is calculated by sla
8890 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
8891 (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'))
8893 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
8894 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
8895 AND (l_actual_flag = 'A')) THEN
8896 XLA_AE_LINES_PKG.CreateGainOrLossLines(
8897 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
8898 ,p_application_id => p_application_id
8899 ,p_amb_context_code => 'DEFAULT'
8900 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
8901 ,p_event_class_code => C_EVENT_CLASS_CODE
8902 ,p_event_type_code => C_EVENT_TYPE_CODE
8903
8904 ,p_gain_ccid => -1
8905 ,p_loss_ccid => -1
8906
8907 ,p_actual_flag => l_actual_flag
8908 ,p_enc_flag => null
8909 ,p_actual_g_l_ref => l_actual_gain_loss_ref
8910 ,p_enc_g_l_ref => null
8911 );
8912 END IF;
8913 END IF;
8914 END IF;
8915
8916 ELSE
8917 --
8918 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
8919 --
8920 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8921 trace
8922 (p_msg => 'Trancaction revesal option is Y'
8923 ,p_level => C_LEVEL_STATEMENT
8924 ,p_module => l_log_module);
8925 END IF;
8926 END IF;
8927
8928 END LOOP;
8929 l_result := XLA_AE_LINES_PKG.InsertLines ;
8930 end loop;
8931 close line_cur;
8932
8933
8934 --
8935 -- insert headers into xla_ae_headers_gt table
8936 --
8937 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
8938
8939 -- insert into errors table here.
8940
8941 END LOOP;
8942
8943 --
8944 -- 4865292
8945 --
8946 -- Compare g_hdr_extract_count with event count in
8947 -- CreateHeadersAndLines.
8948 --
8949 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
8950
8951 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8952 trace (p_msg => '# rows extracted from header extract objects '
8953 || ' (running total): '
8954 || g_hdr_extract_count
8955 ,p_level => C_LEVEL_STATEMENT
8956 ,p_module => l_log_module);
8957 END IF;
8958
8959 CLOSE header_cur;
8960 --
8961
8962 --
8963 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8964 trace
8965 (p_msg => 'END of EventClass_19'
8966 ,p_level => C_LEVEL_PROCEDURE
8967 ,p_module => l_log_module);
8968 END IF;
8969 --
8970 RETURN l_result;
8971 EXCEPTION
8972 WHEN xla_exceptions_pkg.application_exception THEN
8973
8974 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
8975
8976
8977 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
8978
8979 RAISE;
8980 WHEN OTHERS THEN
8981 xla_exceptions_pkg.raise_message
8982 (p_location => 'XLA_08901_AAD_S_000002_PKG.EventClass_19');
8983 END EventClass_19;
8984 --
8985
8986 --
8987 --+============================================+
8988 --| |
8989 --| PRIVATE FUNCTION |
8990 --| |
8991 --+============================================+
8992 --
8993 FUNCTION CreateHeadersAndLines
8994 (p_application_id IN NUMBER
8995 ,p_base_ledger_id IN NUMBER
8996 ,p_target_ledger_id IN NUMBER
8997 ,p_pad_start_date IN DATE
8998 ,p_pad_end_date IN DATE
8999 ,p_primary_ledger_id IN NUMBER)
9000 RETURN BOOLEAN IS
9001 l_created BOOLEAN:=FALSE;
9002 l_event_id NUMBER;
9003 l_event_date DATE;
9004 l_language VARCHAR2(30);
9005 l_currency_code VARCHAR2(30);
9006 l_sla_ledger_id NUMBER;
9007 l_log_module VARCHAR2(240);
9008
9009 BEGIN
9010 --
9011 IF g_log_enabled THEN
9012 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
9013 END IF;
9014 --
9015 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9016 trace
9017 (p_msg => 'BEGIN of CreateHeadersAndLines'
9018 ,p_level => C_LEVEL_PROCEDURE
9019 ,p_module => l_log_module);
9020 END IF;
9021
9022 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
9023 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
9024 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
9025
9026 --
9027 -- initialize array of lines with NULL
9028 --
9029 xla_ae_lines_pkg.SetNullLine;
9030
9031 --
9032 -- initialize header extract count -- Bug 4865292
9033 --
9034 g_hdr_extract_count:= 0;
9035
9036
9037 l_created := EventClass_17(
9038 p_application_id => p_application_id
9039 , p_base_ledger_id => p_base_ledger_id
9040 , p_target_ledger_id => p_target_ledger_id
9041 , p_language => l_language
9042 , p_currency_code => l_currency_code
9043 , p_sla_ledger_id => l_sla_ledger_id
9044 , p_pad_start_date => p_pad_start_date
9048
9045 , p_pad_end_date => p_pad_end_date
9046 , p_primary_ledger_id => p_primary_ledger_id
9047 );
9049
9050
9051 IF ( g_diagnostics_mode ='Y' ) THEN
9052
9053 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9054 trace
9055 (p_msg => 'CALL Transaction Objects Diagnostics'
9056 ,p_level => C_LEVEL_STATEMENT
9057 ,p_module => l_log_module);
9058
9059 END IF;
9060
9061 insert_sources_17(
9062 p_target_ledger_id => p_target_ledger_id
9063 , p_language => l_language
9064 , p_sla_ledger_id => l_sla_ledger_id
9065 , p_pad_start_date => p_pad_start_date
9066 , p_pad_end_date => p_pad_end_date
9067 );
9068
9069 END IF;
9070
9071 l_created := EventClass_18(
9072 p_application_id => p_application_id
9073 , p_base_ledger_id => p_base_ledger_id
9074 , p_target_ledger_id => p_target_ledger_id
9075 , p_language => l_language
9076 , p_currency_code => l_currency_code
9077 , p_sla_ledger_id => l_sla_ledger_id
9078 , p_pad_start_date => p_pad_start_date
9079 , p_pad_end_date => p_pad_end_date
9080 , p_primary_ledger_id => p_primary_ledger_id
9081 );
9082
9083
9084
9085 IF ( g_diagnostics_mode ='Y' ) THEN
9086
9087 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9088 trace
9089 (p_msg => 'CALL Transaction Objects Diagnostics'
9090 ,p_level => C_LEVEL_STATEMENT
9091 ,p_module => l_log_module);
9092
9093 END IF;
9094
9095 insert_sources_18(
9096 p_target_ledger_id => p_target_ledger_id
9097 , p_language => l_language
9098 , p_sla_ledger_id => l_sla_ledger_id
9099 , p_pad_start_date => p_pad_start_date
9100 , p_pad_end_date => p_pad_end_date
9101 );
9102
9103 END IF;
9104
9105 l_created := EventClass_19(
9106 p_application_id => p_application_id
9107 , p_base_ledger_id => p_base_ledger_id
9108 , p_target_ledger_id => p_target_ledger_id
9109 , p_language => l_language
9110 , p_currency_code => l_currency_code
9111 , p_sla_ledger_id => l_sla_ledger_id
9112 , p_pad_start_date => p_pad_start_date
9113 , p_pad_end_date => p_pad_end_date
9114 , p_primary_ledger_id => p_primary_ledger_id
9115 );
9116
9117
9118
9119 IF ( g_diagnostics_mode ='Y' ) THEN
9120
9121 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9122 trace
9123 (p_msg => 'CALL Transaction Objects Diagnostics'
9124 ,p_level => C_LEVEL_STATEMENT
9125 ,p_module => l_log_module);
9126
9127 END IF;
9128
9129 insert_sources_19(
9130 p_target_ledger_id => p_target_ledger_id
9131 , p_language => l_language
9132 , p_sla_ledger_id => l_sla_ledger_id
9133 , p_pad_start_date => p_pad_start_date
9134 , p_pad_end_date => p_pad_end_date
9135 );
9136
9137 END IF;
9138
9139
9140 --
9141 -- Bug 4865292
9142 -- When the number of events and that of header extract do not match,
9143 -- set the no header extract flag to indicate there are some issues
9144 -- in header extract.
9145 --
9146 -- Event count context is set in xla_accounting_pkg.unit_processor.
9147 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
9148 -- to report it as a general error.
9149 --
9150 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
9151 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
9152
9153 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9154 trace
9155 (p_msg => '# of extracted headers and events does not match'
9156 ,p_level => C_LEVEL_STATEMENT
9157 ,p_module => l_log_module);
9158
9159 trace
9160 (p_msg => '# of extracted headers: '
9161 ||g_hdr_extract_count
9162 ,p_level => C_LEVEL_STATEMENT
9163 ,p_module => l_log_module);
9164
9165 trace
9166 (p_msg => '# of events in xla_events_gt: '
9167 ||xla_context_pkg.get_event_count_context
9168 ,p_level => C_LEVEL_STATEMENT
9169 ,p_module => l_log_module);
9170
9171 trace
9172 (p_msg => 'Event No Header Extract Context: '
9173 ||xla_context_pkg.get_event_nohdr_context
9174 ,p_level => C_LEVEL_STATEMENT
9175 ,p_module => l_log_module);
9176
9177 END IF;
9178
9179
9180 xla_context_pkg.set_event_nohdr_context
9181 (p_nohdr_extract_flag => 'Y'
9182 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
9183
9184 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9185 trace
9186 (p_msg => 'No Header Extract Flag is set to Y'
9187 ,p_level => C_LEVEL_STATEMENT
9188 ,p_module => l_log_module);
9189 END IF;
9190
9191 END IF;
9192
9196 ,p_level => C_LEVEL_PROCEDURE
9193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9194 trace
9195 (p_msg => 'END of CreateHeadersAndLines'
9197 ,p_module => l_log_module);
9198 END IF;
9199
9200 RETURN l_created;
9201 EXCEPTION
9202 WHEN xla_exceptions_pkg.application_exception THEN
9203 RAISE;
9204 WHEN OTHERS THEN
9205 xla_exceptions_pkg.raise_message
9206 (p_location => 'XLA_08901_AAD_S_000002_PKG.CreateHeadersAndLines');
9207 END CreateHeadersAndLines;
9208 --
9209 --
9210
9211 --
9212 --+============================================+
9213 --| |
9214 --| PUBLIC FUNCTION |
9215 --| |
9216 --+============================================+
9217 --
9218 FUNCTION CreateJournalEntries
9219 (p_application_id IN NUMBER
9220 ,p_base_ledger_id IN NUMBER
9221 ,p_pad_start_date IN DATE
9222 ,p_pad_end_date IN DATE
9223 ,p_primary_ledger_id IN NUMBER)
9224 RETURN NUMBER IS
9225 l_log_module VARCHAR2(240);
9226 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
9227 l_temp_result BOOLEAN;
9228 l_result NUMBER;
9229 BEGIN
9230 --
9231 IF g_log_enabled THEN
9232 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
9233 END IF;
9234 --
9235 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9236 trace
9237 (p_msg => 'BEGIN of CreateJournalEntries'||
9238 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
9239 ,p_level => C_LEVEL_PROCEDURE
9240 ,p_module => l_log_module);
9241
9242 END IF;
9243
9244 --
9245 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
9246
9247 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9248 trace
9249 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
9250 ,p_level => C_LEVEL_STATEMENT
9251 ,p_module => l_log_module);
9252 END IF;
9253 --
9254 xla_ae_journal_entry_pkg.SetProductAcctDefinition
9255 (p_product_rule_code => 'FV_STANDARD_AAD'
9256 ,p_product_rule_type_code => 'S'
9257 ,p_product_rule_version => ''
9258 ,p_product_rule_name => 'Federal Financials AAD'
9259 ,p_amb_context_code => 'DEFAULT'
9260 );
9261
9262 l_array_ledgers :=
9263 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
9264 (p_base_ledger_id => p_base_ledger_id);
9265
9266 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
9267 l_temp_result :=
9268 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
9269 (p_application_id => p_application_id
9270 ,p_base_ledger_id => p_base_ledger_id
9271 ,p_target_ledger_id => l_array_ledgers(Idx)
9272 ,p_primary_ledger_id => p_primary_ledger_id
9273 ,p_pad_start_date => p_pad_start_date
9274 ,p_pad_end_date => p_pad_end_date);
9275
9276 l_temp_result :=
9277 l_temp_result AND
9278 CreateHeadersAndLines
9279 (p_application_id => p_application_id
9280 ,p_base_ledger_id => p_base_ledger_id
9281 ,p_target_ledger_id => l_array_ledgers(Idx)
9282 ,p_pad_start_date => p_pad_start_date
9283 ,p_pad_end_date => p_pad_end_date
9284 ,p_primary_ledger_id => p_primary_ledger_id
9285 );
9286 END LOOP;
9287
9288
9289 IF (g_diagnostics_mode = 'Y' AND
9290 C_LEVEL_UNEXPECTED >= g_log_level AND
9291 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
9292
9293 xla_accounting_dump_pkg.acctg_event_extract_log(
9294 p_application_id => p_application_id
9295 ,p_request_id => xla_environment_pkg.g_Req_Id
9296 );
9297
9298 END IF;
9299
9300 CASE l_temp_result
9301 WHEN TRUE THEN l_result := 0;
9302 ELSE l_result := 2;
9303 END CASE;
9304
9305 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9306 trace
9307 (p_msg => 'return value. = '||TO_CHAR(l_result)
9308 ,p_level => C_LEVEL_PROCEDURE
9309 ,p_module => l_log_module);
9310 trace
9311 (p_msg => 'END of CreateJournalEntries '
9312 ,p_level => C_LEVEL_PROCEDURE
9313 ,p_module => l_log_module);
9314 END IF;
9315
9316 RETURN l_result;
9317 EXCEPTION
9318 WHEN xla_exceptions_pkg.application_exception THEN
9319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9320 trace
9321 (p_msg => 'ERROR. = '||sqlerrm
9322 ,p_level => C_LEVEL_PROCEDURE
9323 ,p_module => l_log_module);
9324 END IF;
9325 RAISE;
9326 WHEN OTHERS THEN
9327 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9328 trace
9329 (p_msg => 'ERROR. = '||sqlerrm
9330 ,p_level => C_LEVEL_PROCEDURE
9331 ,p_module => l_log_module);
9332 END IF;
9333 xla_exceptions_pkg.raise_message
9334 (p_location => 'XLA_08901_AAD_S_000002_PKG.CreateJournalEntries');
9335 END CreateJournalEntries;
9336 --
9337 --=============================================================================
9338 --
9339 --
9340 --
9341 --
9342 --
9343 --
9344 --
9345 --
9346 --
9347 --
9348 --
9349 --
9350 --
9351 --
9352 --
9353 --
9354 --
9355 --
9356 --
9357 --
9358 --
9359 --
9360 --=============================================================================
9361 --=============================================================================
9362 -- *********** Initialization routine **********
9363 --=============================================================================
9364
9365 BEGIN
9366 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
9367 g_log_enabled := fnd_log.test
9368 (log_level => g_log_level
9369 ,module => C_DEFAULT_MODULE);
9370
9371 IF NOT g_log_enabled THEN
9372 g_log_level := C_LEVEL_LOG_DISABLED;
9373 END IF;
9374 --
9375 END XLA_08901_AAD_S_000002_PKG;
9376 --